pdf-generation - 将文本添加到使用 itextsharp 关闭的现有 pdf

标签 pdf-generation itextsharp

你好
我正在使用 itextsharp 创建 PDF。现在我的要求是向现有 pdf 添加更多文本。如果可能的话,我该怎么做呢?

谢谢蒂帕

最佳答案

是的,有一定的限制。

确定现有页面上已经存在的内容是困难的,但并非不可能。

如果您只想在所有页面的左下角添加“Y 中的 X 页”,那就是 容易 .

PdfReader reader = new PdfReader( inPath );
PdfStamper stamper = new PdfStamper( reader, new FileOutputStream( outPath ) );
BaseFont font = BaseFont.createFont(); // Helvetica, WinAnsiEncoding
for (int i = 0; i < reader.getNumberOfPages(); ++i) {
  PdfContentByte overContent = stamper.getOverContent( i + 1 );
  overContent.saveState();
  overContent.beginText();
  overContent.setFontAndSize( font, 10.0f );
  overContent.setTextMatrix( xLoc, yLoc );
  overContent.showText( "Page " + (i + 1) + " of " + reader.getNumberOfPages() );
  overContent.endText();
  overContent.restoreState();
}
stamper.close();

大水印并不困难。在一个或多个预定位置将内容添加到 PDF 是非常可行的。

另一方面是“更改现有段落中的文本并重排它们”。这几乎是不可能的。使用新数据重建原始 PDF 会容易得多。

事实上,如果可能的话,只需重建它们。你做过一次,再做一次。

关于pdf-generation - 将文本添加到使用 itextsharp 关闭的现有 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508120/

相关文章:

ios - 在 iOS 中添加 PDF 页面

spring-boot - FOP 在 jar 中运行时抛出 "IllegalArgumentException: URI is not absolute"

ItextSharp - Acrofields 是空的

c# - 需要帮助使用 itextsharp 从 HTML 创建 PDF

itextsharp - 将文字放在图像顶部?

java - iText 无法将行保持在一起,第二行跨越多个页面,但不会与第一行保持一致

javascript - 在 PDF 创建的页脚内打印变量

javascript - 如何使用 jsPDF 创建输出的 pdf, 'exactly' 作为 window.print() 命令给出?

adobe - 无法使用 iTextSharp 从动态 PDF 表单中读取字段

C#:iTextSharp,如何编辑 pdf 文档的标题属性?