Ich habe folgendes Deckblatt. Ich muss Werte für Lizenznehmer hinzufügen, Datum und füllen Sie das Feld mit einem anderen Text gegeben. Wie kann das mit iText gemacht werden? Jede Hilfe wird geschätzt. iText Werte zu Platzhaltern im PDF-Deckblatt dynamisch hinzufügen
Antwort
Zuerst müssen Sie ein Formular erstellen, das als Vorlage für Ihr gesamtes Lizenzdokument dient. Abschnitt 5.3.5 von Chapter 6 of "iText in Action" (ein Kapitel, das kostenlos heruntergeladen werden kann) erklärt, wie man ein solches Formular mit OpenOffice erstellt, aber es gibt viele alternative Möglichkeiten, dies zu tun. Ich habe eine solche Form mit Adobe Acrobat: CertificateOfExcellence.pdf
ich die Felder hervorgehoben, so dass Sie sehen können, wo ich sie hinzugefügt haben. Es gibt vier:
- Kurs: den Name des Kurses in 14pt Helvetica, mit zentrierte Ausrichtung
- Name: der Name des Schülers in Helvetica, linksbündig
- Datum: das Datum des Kurses in Helvetica, linke Ausrichtung
- Beschreibung des Kurses: der Name des Studenten in Helvetica, links Ausrichtung mit der Mehrlinienflagge auf.
Jetzt kann ich einfach das Formular ausfüllen (siehe FillForm):
public void manipulatePdf(String src, String dest) throws DocumentException, IOException {
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
form.setField("course", "Copying and Pasting from StackOverflow");
form.setField("name", "Some dude on StackOverflow");
form.setField("date", "April 10, 2016");
form.setField("description",
"In this course, people consistently ignore the existing documentation completely. "
+ "They are encouraged to do no effort whatsoever, but instead post their questions "
+ "on StackOverflow. It would be a mistake to refer to people completing this course "
+ "as developers. A better designation for them would be copy/paste artist. "
+ "Only in very rare cases do these people know what they are actually doing. "
+ "Not a single student has ever learned anything substantial during this course.");
stamper.setFormFlattening(true);
stamper.close();
}
Die resultierende PDF sieht wie folgt aus: certificate.pdf
Wie Sie den Code sehen können, ist sehr einfach. All dies ist sehr gut dokumentiert für diejenigen, die sich die Zeit nehmen, die Dokumentation zu lesen. Vielleicht können Sie auch den Abschnitt Interactive forms auf der official web site betrachten.
- 1. Werte zu vorhandenen JTable dynamisch hinzufügen
- 2. iText neue Seite hinzufügen
- 3. Werte dynamisch zur Arraylist von userinput hinzufügen
- 4. GameObject dynamisch zu Szene in Unity3d hinzufügen
- 5. Dynamisch Werte zu Ressourcen-String-Array in Android hinzufügen
- 6. Wie kann ich zu einem JavaScript-Objekt hinzufügen Werte dynamisch
- 7. Array-Werte zu NSMutableDictionary hinzufügen
- 8. eleganter Weg, SQL zu erstellen WHERE Hinzufügen und mit Platzhaltern
- 9. Hinzufügen von Eingabeelementen dynamisch zu
- 10. Zeile dynamisch zu AdvancedDataGrid hinzufügen
- 11. Zeilen dynamisch zu 2 verschiedenen Tabellen im selben HTML hinzufügen
- 12. dynamisch Eigenschaften zu beobachtbaren Objekt Hinzufügen
- 13. dynamisch hinzufügen TableRow zu Tablelayout
- 14. Hinzufügen zu einer Klasse dynamisch
- 15. Hinzufügen TinyMCE dynamisch zu div
- 16. Steuerelement dynamisch zu Benutzersteuerelementen hinzufügen
- 17. Binding dynamisch zu TableView hinzufügen
- 18. Inhalt dynamisch zu RelativeLayout hinzufügen
- 19. Bild aus Drawable und Hinzufügen zu PDF mit iText
- 20. Hinzufügen von externen Bildern zu PDF mit iText
- 21. Mit Platzhaltern arbeiten - SQL
- 22. Hinzufügen neuer Werte zu Objekten
- 23. Dynamisch mehrere Ereignisse zu mehreren Webansichten hinzufügen
- 24. Dynamisch Regionen zu Marionette Layout hinzufügen
- 25. Dynamisch Hinzufügen von Komponenten zu JPanel
- 26. Dynamisch Daten zu Divs mit SQL hinzufügen?
- 27. asyncio. dynamisch hinzufügen Koroutinen zu Schleife
- 28. ändern CF7 Formular Werte dynamisch
- 29. PHP-Suchzeichenfolge (mit Platzhaltern)
- 30. Dynamisch Daten und Serien zu Echarts hinzufügen
Vielen Dank. Das war genau das, was ich machen wollte. :) –