繁体   English   中英

如何在不使用 iText7 和 C# 覆盖内容的情况下向现有 pdf 添加文本?

[英]How to add text to an existing pdf without overwriting the content with iText7 and C#?

我有这段代码应该在pdf中的图像后插入文本。

        // Read the data from input file
        string reader = "C:\\InesProjetos\\PrintTextWithImage\\PrintTextWithImage\\cat.pdf";
        string dest = "C:\\demo.pdf";
        string text = "C:\\InesProjetos\\PrintTextWithImage\\PrintTextWithImage\\text.txt";
        StreamReader rdr = new StreamReader(text);
        // Must have write permissions
        //to the path folder
        PdfWriter writer = new PdfWriter(dest);
        PdfReader readerFile = new PdfReader(reader);
        PdfDocument pdf = new PdfDocument(writer); 
        Document document = new Document(pdf);
        document.Add(new Paragraph(rdr.ReadToEnd()));
        document.Close();     

如何在 cat.pdf 文件中插入 text.txt 文件中的文本而不覆盖 cat.pdf 中的图像?

更新

如何处理 readerFile 对象? 我应该将 cat.pdf 插入 demo.pdf 然后添加文本吗? 如果是这样怎么办?

每当你想向现有的 pdf 添加一些东西时,你不仅要写,还要读,即你需要PdfWriterPdfReaderPdfDocument

PdfReader reader = new PdfReader(source);
PdfWriter writer = new PdfWriter(dest);
PdfDocument pdf = new PdfDocument(reader, writer);

此外,如果您不希望新内容覆盖现有内容,则必须如此告知对象,例如,如果您使用Document添加新内容:

Document document = new Document(pdf);
document.Add(new AreaBreak(AreaBreakType.LAST_PAGE));
document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));
document.Add(new Paragraph(rdr.ReadToEnd()));
document.Close(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM