如何在不使用 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();
如何将 text.txt 文件中的文本插入 cat.pdf 文件而不覆盖 cat.pdf 中的图像?
更新
如何处理 readerFile 对象?我应该将 cat.pdf 插入 demo.pdf 然后添加文本吗?如果是的话怎么办?
每当您想向现有 pdf 添加内容时,您不仅要写还要读,即您需要 PdfWriter
和 PdfReader
作为 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();
我有一段代码应该在 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();
如何将 text.txt 文件中的文本插入 cat.pdf 文件而不覆盖 cat.pdf 中的图像?
更新
如何处理 readerFile 对象?我应该将 cat.pdf 插入 demo.pdf 然后添加文本吗?如果是的话怎么办?
每当您想向现有 pdf 添加内容时,您不仅要写还要读,即您需要 PdfWriter
和 PdfReader
作为 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();