2010-12-22 112 views

回答

9

是的,有一定的局限性。

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

如果您要做的只是将“Y的页面X”添加到所有页面的左下角,即easy

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会容易得多。

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

+1

谢谢@Mark Storer – dipa 2010-12-27 04:43:26

相关问题