Convert Image Files to PDF

To convert an image file to a PDF, send a request to the /api/build endpoint, including both the image file as input and the instructions JSON.

The default output from the /api/build endpoint is a PDF file. You can also specify other file types. Learn more about the output options in our API reference.

Before you get started, make sure Document Engine is up and running.

You’ll be sending multipart POST requests with instructions to Document Engine’s /api/build endpoint. To learn more about multipart requests, refer to our blog post on the topic, A Brief Tour of Multipart Requests.

Check out the API Reference to learn more about the /api/build endpoint and all the actions you can perform on PDFs with Document Engine.

Converting an Image File from Disk

Send a multipart request to the /api/build endpoint and attach an image file:

curl -X POST http://localhost:5000/api/build \
  -H "Authorization: Token token=<API token>" \
  -F image=@/path/to/example-image.png \
  -F instructions='{
  "parts": [
    {
      "file": "image"
    }
  ]
}' \
  -o result.pdf
POST /api/build HTTP/1.1
Content-Type: multipart/form-data; boundary=customboundary
Authorization: Token token=<API token>

--customboundary
Content-Disposition: form-data; name="image"; filename="example-image.png"
Content-Type: image/png

<PNG data>
--customboundary
Content-Disposition: form-data; name="instructions"
Content-Type: application/json

{
  "parts": [
    {
      "file": "image"
    }
  ]
}
--customboundary--

Converting an Image File from URL

Send a multipart request to the /api/build endpoint, attaching a URL pointing to the image file:

curl -X POST http://localhost:5000/api/build \
  -H "Authorization: Token token=<API token>" \
  -F instructions='{
  "parts": [
    {
      "file": {
        "url": "https://pspdfkit.com/downloads/examples/image.webp"
      }
    }
  ]
}' \
  -o result.pdf
POST /api/build HTTP/1.1
Content-Type: multipart/form-data; boundary=customboundary
Authorization: Token token=<API token>

--customboundary
Content-Disposition: form-data; name="instructions"
Content-Type: application/json

{
  "parts": [
    {
      "file": {
        "url": "https://pspdfkit.com/downloads/examples/image.webp"
      }
    }
  ]
}
--customboundary--

Supported Formats

Refer to our file type support guide for a list of all supported file formats, along with any license requirements they might have.