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

时间:2010-12-22 10:15:51

标签: pdf-generation itextsharp

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

感谢Dipa

1 个答案:

答案 0 :(得分:9)

是的,有一些限制。

确定现有页面上的内容很困难,但并非不可能。

如果您只想在所有网页的左下角添加“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会更容易。

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