I have to merge two pdf Files using PdfBox of Apache. I have taken physical pdf files to do so. Below is the code:
PDFMergerUtility ut = new PDFMergerUtility();
ut.addSource(path1);
ut.addSource(path2);
ut.setDestinationFileName(path3);
ut.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
Files are merged perfectly but then have some constraints as below:
- I am creating 1st file in the code itself,so it is PDDocument object.
- The file which I have to merge with 1st file is in byte array format.
- I don't need to save the merged files but need convert it as byte array.
Please anyone help me achieve this requirement.
Call
PDFMergerUtility.appendDocument(PDDocument destination, PDDocument source)
instead of merge. To load from a byte array, callPDDocument.load(array)
.Btw: I'd discourage to merge PDDocument objects that you created yourself, this fails if you have font subsets (see issue PDFBOX-3243). Better save them (e.g. in a
ByteArrayOutputStream
) and reload and then merge. To get a byte array from a ByteArrayOutputStream, useByteArrayOutputStream.tobytearray()
.