Merge PDF

Merge PDF is a very useful feature when multiple documents need to be combined, to create a single PDF document. PDF4me is one of the best online tools to merge PDF files at the highest speeds.

Code sample

Try the API in the language you prefer

  • C#
  • Java
  • JavaScript
  • PHP
  • Python
  • Ruby
// create merge object
var merge = new Merge()
{
    // documents
    Documents = new System.Collections.Generic.HashSet()
    {
        new Document()
        {
            DocData = File.ReadAllBytes("myFirstPdf.pdf"),
            Name = "myFirstPdf.pdf",
        },
        new Document()
        {
            DocData = File.ReadAllBytes("mySecondPdf.pdf"),
            Name = "mySecondPdf.pdf",
        },
    },
    // action
    MergeAction = new MergeAction()
};

// merge
var res = await Pdf4meClient.Pdf4me.Instance.MergeClient.MergeAsync(merge);

// extract the merged PDF and writing it to disk
byte[] mergedPdf = res.Document.DocData;
File.WriteAllBytes("mergedPdf.pdf", mergedPdf);
// setup the mergeClient
MergeClient mergeClient = new MergeClient(pdf4meClient);

// create merge object
Merge merge = new Merge();
// documents
List documents = new ArrayList();
Document doc1 = new Document();
doc1.setDocData(Files.readAllBytes(Paths.get("myFirstPdf.pdf")));
documents.add(doc1);
Document doc2 = new Document();
doc2.setDocData(Files.readAllBytes(Paths.get("mySecondPdf.pdf")));
documents.add(doc2);
merge.setDocuments(documents);
// action
merge.setMergeAction(new MergeAction());

// merge
MergeRes res = mergeClient.merge(merge);

// extracting the generated PDF and writing it to disk
byte[] mergedPdf = res.getDocument().getDocData();
FileUtils.writeByteArrayToFile(new File("mergedPdf.pdf"), mergedPdf);
// setup the pdf4meClient
const pdf4meClient = pdf4me.createClient('YOUR API KEY')

// create merge object
const mergeReq = {
  // documents
  documents: [
    {
      docData: fs.readFileSync(path.join(__dirname, 'myFirstPdf.pdf')).toString('base64'),
    },
    {
      docData: fs.readFileSync(path.join(__dirname, 'mySecondPdf.pdf')).toString('base64'),
    },
  ],
  // action
  mergeAction: {},
}

// merge
pdf4meClient.merge(mergeReq)
  .then(function(mergeRes) {
    // extract the merged PDF and writing it to disk
    const pdf = Buffer.from(mergeRes.document.docData, 'base64')
    fs.writeFileSync(path.join(__dirname, 'mergedPdf.pdf'), pdf)
  })
  .catch(err => {
    console.log(err)
  })
# setup the merge_client
merge_client = MergeClient(pdf4me_client)

# create the merge object
merge = Merge(
    documents=[
        Document(
            doc_data=FileReader().get_file_data('myFirstPdf.pdf')
        ),
        Document(
            doc_data=FileReader().get_file_data('mySecondPdf.pdf')
        )
    ],
    merge_action=MergeAction()
)

# merge
res = merge_client.merge(merge=merge)

# extracting the generated PDF
merged_pdf = base64.b64decode(res['document']['doc_data'])
# writing it to disk
with open('mergedPdf.pdf', 'wb') as f:
    f.write(merged_pdf)
$mergedPdf = $client->pdf4me()->pdfMerge([
    "documents" => [
        [
            'docData' => $client->getFileData('myFirstPdf.pdf')
        ],
        [
            'docData' => $client->getFileData('mySecondPdf.pdf')
        ]
    ]
]);

// extracting the generated PDF
$mergedPdf = base64_decode($createMerge->document->docData);
// and writing it to file
file_put_contents('mergedPdf.pdf', $mergedPdf);
file_path_1 = './in/PDF_1Page.pdf'
file_path_2 = './in/PDF_10Pages.pdf'
file_path_3 = './in/PDF_100Pages.pdf'

action = Pdf4me::Merge.new(
    documents: [
      Pdf4me::Document.new(
        doc_data: Base64.encode64(File.open(file_path_1, 'rb', &:read))
      ),
      Pdf4me::Document.new(
        doc_data: Base64.encode64(File.open(file_path_2, 'rb', &:read))
      ),
      Pdf4me::Document.new(
        doc_data: Base64.encode64(File.open(file_path_3, 'rb', &:read))
      )
    ]
)
response = action.run

# saving the merged PDF
File.open('./out/merg_111Pages.pdf', 'wb') do |f|
 f.write(Base64.decode64(response.document.doc_data))
end

Important Links

Swagger: Merge PDF