2010-12-22 106 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