Ich habe ein pdf-Formular gemacht und ich versuche, pdfBox zu benutzen, um das Formular auszufüllen und das Dokument zu drucken. Ich habe es funktioniert hervorragend für 1-Seite Druckaufträge, aber ich musste versuchen, für mehrere Seiten zu ändern. Im Grunde ist es ein Formular mit grundlegenden Informationen oben und einer Liste von Inhalten. Nun, wenn der Inhalt größer ist als das, wofür das Formular Platz hat, muss ich es zu einem mehrseitigen Dokument machen. Ich habe am Ende ein Dokument mit einer schönen Seite Eins und dann sind alle verbleibenden Seiten die leere Vorlage. Was mache ich falsch?Java pdfBox: Füllen Sie pdf-Formular aus, hängen Sie es an pddocument an und wiederholen Sie
PDDocument finalDoc = new PDDocument();
File template = new File("path/to/template.pdf");
//Declare basic info to be put on every page
String name = "John Smith";
String phoneNum = "555-555-5555";
//Get list of contents for each page
List<List<Map<String, String>>> pageContents = methodThatReturnsMyInfo();
for (List<Map<String, String>> content : pageContents) {
PDDocument doc = new PDDocument().load(template);
PDDocumentCatlog docCatalog = doc.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
acroForm.getField("name").setValue(name);
acroForm.getField("phoneNum").setValue(phoneNum);
for (int i=0; i<content.size(); i++) {
acroForm.getField("qty"+i).setValue(content.get(i).get("qty"));
acroForm.getField("desc"+i).setValue(content.get(i).get("desc"));
}
List<PDPage> pages = docCatalog.getAllPages();
finalDoc.addPage(pages.get(0));
}
//Then prints/saves finalDoc