Zusammenführen Von Pdf-Dateien Mithilfe Der PDFBox
Habe ich zum Zusammenführen von zwei pdf-Dateien mithilfe der PdfBox von Apache. Ich habe genommen physischen pdf-Dateien zu tun.
Unten ist der code:
PDFMergerUtility ut = new PDFMergerUtility();
ut.addSource(path1);
ut.addSource(path2);
ut.setDestinationFileName(path3);
ut.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
Dateien zusammengeführt perfekt, aber dann haben einige Einschränkungen, wie unten:
- Ich bin erstellen 1. die Datei in den code selbst,so ist es PDDocument Objekt.
- Die Datei, die ich habe, zu verschmelzen mit der 1. Datei in byte-array-format.
- Ich nicht brauchen, um speichern Sie die zusammengeführten Dateien, sondern konvertieren müssen Sie als byte-array.
Bitte mir jemand helfen bei der Erreichung dieser Anforderung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Call
PDFMergerUtility.appendDocument(PDDocument Ziel, PDDocument Quelle)
statt Zusammenführen. Laden aus einem byte-array, rufen SiePDDocument.load(array)
.Btw: ich würde abraten zu verschmelzen PDDocument Objekte, die Sie selbst erstellt haben, diese schlägt fehl, wenn Sie schriftart-Teilmengen (siehe Ausgabe PDFBOX-3243). Besser sparen Sie (z.B. in einem
ByteArrayOutputStream
) und neu laden und dann Zusammenführen. Um ein byte-array aus einem ByteArrayOutputStream verwendenByteArrayOutputStream.tobytearray()
.ByteArrayOutputStream
Ansatz? Ich versuchte zu retten, zwei docs in zwei Ströme, kombiniert die arrays und reloaded die kombinierte bytes in ein neues Dokument. Jedoch, es schien nicht zu funktionieren.ByteArrayOutputStream baos = new ByteArrayOutputStream(); doc.save(baos); doc.close(); doc = PDDocument.load(baos.toByteArray());
PDDocument
? ... und dein Kommentar war nicht über das Zusammenführen von Dokumenten durch die Kombination vonByteArrayOutputStream
's. Richtig?