Erstellen Sie Multi-page-Dokument dynamisch mit PDFBox
Ich bin versucht, erstellen Sie ein PDF-report aus einem Java-ResultSet. Wenn der Bericht nur eine Seite, hätte ich hier kein problem. Das Problem kommt von der Tatsache, dass der Bericht könnte überall von ein bis zehn Seiten lang. Jetzt habe ich dies erstellen Sie eine single-page-Dokument:
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDPage.PAGE_SIZE_LETTER);
document.addPage(page);
PDPageContentStream content = new PDPageContentStream(document,page);
Also meine Frage ist, wie kann ich Seiten erstellen, die dynamisch, sobald Sie benötigt werden. Gibt es eine Objekt-orientierte Antwort, starrte mir ins Gesicht und ich kann einfach nicht sehen es?
- Was ist so schlimm (im Rahmen der sehr low-level PDFBox Seite erstellen API) über
page = new PDPage
,document.addPage(page)
, undcontent = new PDPageContentStream
jedes mal, wenn die aktuelle Seite voll ist? - ja, danke! Wie ich erwartet hatte, die Antwort lag direkt unter meiner Nase.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als ich erwartet hatte, die Antwort war starrte mir direkt in das Gesicht, ich brauchte nur jemanden, um zu zeigen, dass es sich für mich.
Dank an @mkl für die Antwort.
Erstellen Sie mehrseitige PDF-Dokument mit PDFBox:
(eine) neue Seite Erstellen, neue content-stream, Verschieben nach Links Oben, beginnen Sie zu schreiben. Während des Schreibens jedes Wort prüfen, ob Raum erforderlich ist, nicht überschreiten mediabox Breite. Wenn Kreuze, weiter zur nächsten Zeile ganz Links und beginnen Sie zu schreiben. Weiter schreiben bis die Letzte Zeile der Seite.
(b) Schließen Sie die contentStream und fügen Sie die aktuelle Seite auf das Dokument, wenn die Schreiboperation mit dem erreichen der letzten Zeile der aktuellen Seite
(c) Wiederholen der Schritte (a) und (b), bis der Letzte Datensatz/Zeile/Zeile geschrieben wird.
Hinweis: Font-Parameter wie die Größe/Höhe und die übrigen Medien im Feld Höhe, um zu bestimmen, die Letzte Zeile der Seite.