使用pdfbox编辑pdf页面

Mon*_*sef 9 java edit pdfbox

如何编写带有java和pdfbox的pdf页面,通过写入我已知的像素的特定位置?

我尝试了这个,但它覆盖了:

PDDocument document = null;
try {
    document = PDDocument.load(new File("/x/x/x/mypdf.pdf"));
    PDPage page = (PDPage) document.getDocumentCatalog().getAllPages().get(0);
    PDFont font = PDType1Font.HELVETICA_BOLD;
    PDPageContentStream contentStream = new PDPageContentStream(document, page);
    page.getContents().getStream();
    contentStream.beginText();
    contentStream.setFont(font, 12);
    contentStream.moveTextPositionByAmount(100, 100);
    contentStream.drawString("Hello");
    contentStream.endText();
    contentStream.close();
    document.save("/x/x/x/mypdf.pdf");
    document.close();
} catch (IOException e) {
    e.printStackTrace();
} catch (COSVisitorException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ani*_*rni 18

你可以使用PDFBox,你所缺少的就是附加到页面上.只需改变这一行:

PDPageContentStream contentStream = new PDPageContentStream(document, page);
Run Code Online (Sandbox Code Playgroud)

至:

PDPageContentStream contentStream = new PDPageContentStream(document, page, true, true);
Run Code Online (Sandbox Code Playgroud)

从PDFBox 2.0开始,boolean appendContent已被替换AppendMode APPEND为以前代码的等价物:

PDPageContentStream contentStream = new PDPageContentStream(
    document, page, PDPageContentStream.AppendMode.APPEND, true
);
Run Code Online (Sandbox Code Playgroud)