微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有一段应该在 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 中添加内容时,您不仅要写,还要读,即您需要 PdfWriterPdfReader 来表示 PdfDocument

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(); 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。