PDFBox разбивает данные внутри HTML-тегов, таких как <td>, на отдельные страницы. Как указать, где разбивать страницы?

avatar
dlya
1 июля 2021 в 18:18
56
1
0

Я конвертирую HTML-файл в pdf с помощью pdfbox, и когда он создает страницы, он делит данные внутри тегов HTML (например) внизу на две страницы. Как я могу указать какие-то разделы (или группы), в которых данные могут быть разделены. Так что он не будет разделять данные внутри тегов, таких как

public byte[] createPDF(String htmlData) {
        try {
            
            byte[] pdfCon = super.createPDF(htmlData);
            
            pdfCon = drawVerticalLine(pdfCon);

            return pdfCon;
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }

    }
    
    protected byte[] drawVerticalLine(byte[] content )
            throws Exception {
        PDDocument doc = PDDocument.load(content);
        int pageCount = doc.getNumberOfPages();
        PDPageContentStream canvas;
       ...
     }
Источник
mkl
2 июля 2021 в 07:57
1

Я не знаю о PDFBox с преобразованием HTML в PDF.

Tilman Hausherr
2 июля 2021 в 08:04
0

используйте openhtmltopdf github.com/danfickle/openhtmltopdf

Ответы (1)

avatar
dlya
2 июля 2021 в 14:09
0

Мне помогло

<style>
page-inside-avoid {
  display:block;
  page-break-inside: avoid;
  height:120px;
}
</style>
<body>
<page-inside-avoid>
//renderer will try to avoid page breaks inside this tag 
</page-inside-avoid>
</body>