Edit pdf page using pdfbox

edit, java, pdfbox

Solution

You could have used PDFBox, all you are missing is appending to the page. Just change this line:

PDPageContentStream contentStream = new PDPageContentStream(document, page);

to:

PDPageContentStream contentStream = new PDPageContentStream(document, page, true, true);

Starting from PDFBox 2.0, the `boolean` `appendContent` has been replaced by the `AppendMode` `APPEND` such that the equivalent of the previous code is now:

PDPageContentStream contentStream = new PDPageContentStream(
    document, page, PDPageContentStream.AppendMode.APPEND, true
);

Problem

How can i edit a pdf page with java and pdfbox by writing in a specific position that i know already in pixels ? I tried this but it overwrites : ``` 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(); } ``` Thank you.

Original source