iText - Fügen Sie Inhalte zu bestehenden PDF-Dateien hinzu
Ich will im folgenden mit iText:
(1) analysieren eine vorhandene PDF-Datei
(2) fügen Sie einige Daten, auf die vorhandenen einzelnen Seite des Dokuments (z.B. ein Zeitstempel)
(3) schreiben Sie das Dokument
Ich kann einfach nicht scheinen, um herauszufinden, wie dies zu tun ist mit iText. In pseudo-code würde ich dies tun:
Document document = reader.read(input);
document.add(new Paragraph("my timestamp"));
writer.write(document, output);
Aber aus irgendeinem Grund iText API ist so erschreckend kompliziert, ich kann nicht umbrochen, mein Kopf herum. Die PdfReader tatsächlich enthält das Dokument, Modell oder sowas (eher als spuckte ein Dokument), und Sie brauchen einen PdfWriter Lesen Seiten aus... HM?
InformationsquelleAutor der Frage Wouter Lievens | 2010-07-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
iText hat mehr als nur einen Weg, dies zu tun. Die
PdfStamper
Klasse ist eine option. Aber ich finde die einfachste Methode ist das erstellen eines neuen PDF-Dokument importieren Sie dann die einzelnen Seiten aus dem bestehenden Dokument in das neue PDF-Dokument.Lesen in eine PDF-Datei aus
templateInputStream
und schreiben Sie es aufoutputStream
. Diese könnte die Datei-streams oder streams oder was auch immer für Ihre Anwendung passende.InformationsquelleAutor der Antwort gutch
Gutch ' s code ist schließen, aber es wird nur richtig arbeiten, wenn:
Die Genehmigte Methode ist, es zu tun die andere Weise herum. Öffnen Sie das vorhandene Dokument mit einem PdfStamper, und die zurückgegebenen PdfContentByte von getOverContent (), text zu schreiben (und was man sonst noch braucht) direkt auf die Seite. Keine zweite Dokument benötigt.
Und Sie können einen ColumnText zu handhaben layout und so für Sie... keine Notwendigkeit, nach unten und schmutzig mit beginText(),setFontAndSize(),drawText(),drawText()...,endText().
InformationsquelleAutor der Antwort Mark Storer
Dies ist der komplizierteste Szenario, das ich mir vorstellen kann: ich habe eine PDF-Datei erstellt mit Ilustrator und modifiziert mit Acrobat zu haben, AcroFields (AcroForm), die werde ich füllen mit Daten, die mit diesem Java-code, das Ergebnis, die PDF-Datei mit den Daten in den Feldern geändert wird, ein Dokument hinzuzufügen.
Eigentlich in diesem Fall bin ich dynamisch erzeugen einen hintergrund, der Hinzugefügt wird, um eine PDF-Datei, die auch dynamisch erzeugt ein Dokument mit einer unbekannten Menge von Daten oder Seiten.
Ich bin mit JBoss und dieser code innerhalb einer JSP-Datei (sollte die Arbeit in einem JSP-webserver).
Hinweis: wenn Sie mithilfe von IExplorer müssen Sie senden ein HTTP-Formular mit POST-Methode in der Lage sein, um die Datei herunterzuladen. Wenn nicht, wirst du sehen, den PDF-code in den Bildschirm. Dies geschieht nicht in Chrome oder Firefox.
Gibt es eine andere Lösung viel einfacher, und Ihr problem löst. Es hängt von der Menge an text, den Sie hinzufügen möchten.
InformationsquelleAutor der Antwort Alfred
InformationsquelleAutor der Antwort Ramesh. Veguru