Monday, July 25, 2022

Merge PDFs into one using Java & PDFBox API

 //Suppose we want to merge one pdf with another main pdf


              InputStream is1 = null;


              if (file1 != null) {

                     FileInputStream fis1 = new FileInputStream(file1);

                     byte[] file1Data = new byte[(int) file1.length()];

                     fis1.read(file1Data);

                     is1 = new java.io.ByteArrayInputStream(file1Data);

              }


              //

              InputStream mainContent = <ur main content>


              org.apache.pdfbox.pdmodel.PDDocument mergedPDF = new org.apache.pdfbox.pdmodel.PDDocument();

              org.apache.pdfbox.pdmodel.PDDocument mainDoc = org.apache.pdfbox.pdmodel.PDDocument.load(mainContent);

              org.apache.pdfbox.multipdf.PDFMergerUtility merger = new org.apache.pdfbox.multipdf.PDFMergerUtility();


              merger.appendDocument(mergedPDF, mainDoc);


              PDDocument doc1 = null;


              if (is1 != null) {

                     doc1 = PDDocument.load(is1);

                     merger.appendDocument(mergedPDF, doc1);

                    //1st file appended to main pdf");

              }

             


              ByteArrayOutputStream baos = new ByteArrayOutputStream();

              mergedPDF.save(baos);


//Now either u save it here or convert into InputStream if u want

              ByteArrayInputStream mergedInputStream = new ByteArrayInputStream(baos.toByteArray());