Die Projekte ändern sich, die Anforderungen ändern sich und die unveränderlichen Programmierer tippen immer auf Tastaturen ...
Nachdem die PDF generiert wurde, müssen Sie manchmal einen anderen Inhalt zum PDF hinzufügen, z. B. Text, Bilder ...
Nach mehreren fehlgeschlagenen Versuchen bekam ich endlich den richtigen Weg, um den Code zu schreiben.
Dieser Datensatz und Zusammenfassen, damit Sie beim nächsten Mal unverändert sind und sich an Änderungen anpassen, wenden Sie sich bitte an: generieren Sie einen PDF -Full -Leitfaden
PDFREADER reader = new pdffreader ("e: //a.pdf"); PdfStamper Stamper = new pdfStamper (Leser, neuer FileOutputStream ("e: //b.pdf"); PdfContentByte overcontent = stamper.getOverContent (1);Der obige Code wird als Kerncode angesehen, der dem ursprünglichen PDF Inhalt hinzufügt. Der spezifische Prozess ist wie folgt
• Wenn der Leser vorsichtig genug ist, soll der Code das ursprüngliche A.PDF lesen, ihn dann an B.PDF schreiben und dann B.PDF betreiben.
• Einige Leser können sagen, dass es definitiv nicht möglich ist, A zu lesen und es dann in A zu schreiben. A wurde geladen und kann beim Lesen nicht geändert werden.
• Ich mag dies nicht, da die Informationen des ursprünglichen PDF bereits in der Datenbank gespeichert sind, einschließlich des Serverpfads des PDF, des alten Namens, des neuen Namens, der Typen, ...
• Dies führt zu einem zusätzlichen Betriebsänderungsvorgang, da der PDF -Name hier geändert werden muss und die Personen wissen, wie sich die nachfolgenden Anforderungen ändern.
• Es ist dringend, dem PDF Inhalte hier hinzuzufügen, und nichts anderes ändert sich, sodass ich den Code leicht eingestellt habe.
FileUtil.FilechannelCopy (A.PDF, A + "TMP" .pdf)); PDFREADER reader = new pdffreader (a + "tmp" .pdf); PdfStamper Stamper = new pdfStamper (Leser, neuer FileOutputStream (A.PDF)); PdfContentByte overcontent = stamper.getOverContent (1);
Der Codefluss wird so wie dieser
Hier stellen wir die Pipeline -Kopie -Datei vor, kopieren a, lesen Sie die Kopie und schreiben dann an die ursprüngliche PDF A zurück. Natürlich müssen Sie die Kopierdatei löschen.
Unabhängig davon, wie sich die nachfolgenden Anforderungen ändern, bleiben die anderen Eigenschaften von PDF unverändert, und Sie können sie ruhig antreten.
Der Pipeline -Kopiercode lautet wie folgt:
PUBPC static void filechannelCopy (Dateiquellen, Dateidest) {try {FileInputStream inputStream = new FileInputStream (Quellen); FileOutputStream OutputStream = new FileOutputStream (dest); Filechannel filechannepn = inputStream.getchannel (); // Erhalten Sie den entsprechenden Dateikanal Filechannel FileChannel. filechannepn.close (); outputStream.close (); filechannelout.close (); } catch (Ausnahme e) {e.printstacktrace (); }}Der vollständige PDF andere Inhaltscode lautet wie folgt:
FileUtil.filechannelCopy (neue Datei ("e: //a.pdf"), neue Datei ("e: // a+" tmp ".pdf")); PDFREADER reader = new pdffreader ("e: // a+" tmp ".pdf"); PdfStamper Stamper = new pdfStamper (Leser, neuer FileOutputStream ("e: //a.pdf"); PdfContentByte overcontent = stamper.getOverContent (1); // text baseFont font = baseFont.CreateDont ("stSong-pght", "unigb-ucs2-h", baseFont.not_embeded); Überkontent.Begintext (); Überkontent.SetFontandSize (Schriftart, 10); overcontent.setTextmatrix (200, 200); overcontent.showTextapgned (element.apgn_center, "Text zu hinzugefügt werden", 580,530,0); überkontent.endText (); // Bild pdfDictionary pdfDictionary = reader.getPagen (1) hinzufügen; PdfObject pdfObject = pdfDictionary.get (neuer pdfname ("MediaBox")); Pdfarray pdfarray = (pdfarray) pdfObject; Image Image = image.getInstance ("d: //1.jpg"); Image.SetabSoluteposition (100.100); Überkontent.Addimage (Bild); // einen roten Kreis -Überkontent hinzufügen. Überkontent.SetPnewidth (5F); Überkontent.elppse (250, 450, 350, 550); Überkontent.Stroke (); Stamper.close ();Die obige vollständige Anleitung zum Generieren von PDFs ist die Implementierungsmethode zum Hinzufügen von Inhalten zu vorhandenen PDFs. Der Editor teilt den gesamten Inhalt mit Ihnen. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.