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