Merge Multiple PDF Files
Document Engine lets you merge multiple files together by sending requests to the /api/build endpoint. This is useful when you want to concatenate multiple documents and create a large document or add cover pages to an existing document.
- Ensure Document Engine is up and running.
- Send a multipart POST request(opens in a new tab) with instructions to Document Engine’s /api/buildendpoint.
For more information, refer to the API reference to learn about the /api/build endpoint and all the actions you can perform on PDFs with Document Engine.
For an overview of multipart requests, refer to the brief tour of multipart requests blog post.
Merging a Document into a File on Disk
Send a multipart request to the /api/build endpoint(opens in a new tab), attaching an input file and the instructions JSON. This example will add a cover page to the document in the request by merging both documents together. Note that the order of the parts in the instructions corresponds to the order each part of the document will appear in in the final combined PDF after merging is complete.
curl -X POST http://localhost:5000/api/build \  -F document=@/path/to/document.pdf \  -F cover=@/path/to/cover.pdf \  -F instructions='{  "parts": [    {      "file": "cover"    },    {      "file": "document"    }  ]}' \  -o result.pdfPOST /api/build HTTP/1.1Content-Type: multipart/form-data; boundary=customboundary
--customboundaryContent-Disposition: form-data; name="document"; filename="document.pdf"Content-Type: application/pdf
<PDF data>--customboundaryContent-Disposition: form-data; name="cover"; filename="cover.pdf"Content-Type: application/pdf
<PDF data>--customboundaryContent-Disposition: form-data; name="instructions"Content-Type: application/json
{  "parts": [    {      "file": "cover"    },    {      "file": "document"    }  ]}--customboundary--Merging a Document into a File from a URL
Send a request to the /api/build endpoint(opens in a new tab), attaching a URL pointing to an input file and the instructions JSON:
curl -X POST http://localhost:5000/api/build \  -H "Authorization: Token token=<API token>" \  -F cover=@/path/to/cover.pdf \  -F instructions='{  "parts": [    {      "file": "cover"    },    {      "file": {        "url": "https://pspdfkit.com/downloads/examples/paper.pdf"      }    }  ]}' \  -o result.pdfPOST /api/build HTTP/1.1Content-Type: multipart/form-data; boundary=customboundaryAuthorization: Token token=<API token>
--customboundaryContent-Disposition: form-data; name="cover"; filename="cover.pdf"Content-Type: application/pdf
<PDF data>--customboundaryContent-Disposition: form-data; name="instructions"Content-Type: application/json
{  "parts": [    {      "file": "cover"    },    {      "file": {        "url": "https://pspdfkit.com/downloads/examples/paper.pdf"      }    }  ]}--customboundary--The code above adds a cover page to the document downloaded from the URL.
 
  
  
  
 