Create mutli-page document dynamically using PDFBox

前端 未结 2 1405
暗喜
暗喜 2021-02-19 05:33

I am attempting to create a PDF report from a Java ResultSet. If the report was only one page, I would have no problem here. The issue comes from the fact that the report coul

2条回答
  •  感动是毒
    2021-02-19 06:20

    To Create Multi Page PDF Document using PDFBox:

    (a) Create new page, new content stream, Move to Top Left, start writing. While writing each word check whether space required is not crossing mediabox width. If crosses, move to next line leftmost and start writing. Continue writing till the last line of the page.

    (b) Close the contentStream and add the current page to the document when the writing operation reaches the last line of the current page,

    (c) Repeat steps (a) and (b) till the last record/row/line is written.

            PDDocument document = new PDDocument();
            PDFont font = PDType1Font.HELVETICA;
    
    //For Each Page:
            PDPage page = new PDPage(PDPage.PAGE_SIZE_A4);
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            contentStream.setFont(font, 12);
            contentStream.beginText();
            contentStream.moveTextPositionByAmount(100, 700);
            contentStream.drawString("PDF BOX TEXT CONTENT");
            contentStream.endText();
            contentStream.close();
            document.addPage(page);
    
    //After All Content is written:
            document.save(pdfFile);
            document.close();
    

    Hint: Use Font parameters like size/height and remaining media box height to determine the last line of the page.

提交回复
热议问题