Java pdfBox: Füllen Sie pdf-Formular, fügen es pddocument, und wiederholen Sie

Ich habe ein pdf-Formular aus und ich versuche, pdfBox, füllen Sie das Formular aus und drucken Sie das Dokument. Ich habe es funktioniert großartig für 1 Seite print-jobs, aber ich musste versuchen, und ändern Sie für mehrere Seiten. Im Grunde ist es ein Formular mit Basis-info bis oben und eine Liste der Inhalte. Gut, wenn der Inhalt größer als das, was form hat Raum für ich habe es zu einem mehrseitigen Dokument. Ich am Ende mit einem Dokument, das mit einer schönen Seite ein und dann werden alle übrigen Seiten sind die leere Vorlage. Was mache ich falsch?

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

InformationsquelleAutor Andrew | 2015-03-31

Schreibe einen Kommentar