docubend

Convert JPG to PDF

Drop in your pictures. Drag them into the order you want.

How it works

  1. Drop in your images.
  2. Drag them into order.
  3. Download the PDF.

What it does

Photographs of documents are how paper reaches people now, and a folder of loose images is an awkward thing to send. Putting them into one PDF gives you a document with pages, in an order you chose, that opens the same way for everyone.

Order and orientation

Drag the images into the order you want before you build the file. Each becomes a page sized to fit it, so a portrait photograph does not end up in a landscape frame with white bars down the sides. What you arrange is what you get.

Which formats work

JPG, PNG and WebP. Between them that covers phone cameras, screenshots and almost everything saved from a browser. Each image becomes one page, and the images are placed rather than re-compressed, so quality is what your camera produced.

Built on your own machine

The images are read and the PDF is assembled in this tab. Photographs of documents are often the most sensitive files anybody handles — a passport, a payslip, a signed form — and none of them are uploaded here, which is the point. There is no queue either, because there is no server deciding when your turn is.

Making the result smaller

Photographs from a modern phone are large, and a handful of them make a PDF that some email systems will refuse. If the document you get is bigger than you need, run it through the compress tool afterwards and choose how much image quality to spend. Doing it in that order — assemble first, compress second — gives a better result than shrinking each photograph before you start.

Doing this from your own code

POST /api/v1/pdfs

Post the image bytes with their content type, or base64 in an image field.

curl
curl -s "https://docubend.com/api/v1/pdfs?title=Receipt" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: image/jpeg" \
  --data-binary @receipt.jpg
JavaScript
const r = await fetch(`${BASE}/api/v1/pdfs?title=Receipt`, {
  method: "POST",
  headers: { Authorization: `Bearer ${TOKEN}`,
             "Content-Type": "image/jpeg" },
  body: await readFile("receipt.jpg"),
});
const { document: doc } = await r.json();
Python
doc = requests.post(f"{BASE}/api/v1/pdfs", params={"title": "Receipt"},
    headers={"Authorization": f"Bearer {TOKEN}",
             "Content-Type": "image/jpeg"},
    data=open("receipt.jpg", "rb").read(), timeout=60).json()["document"]
What it does not do. One image, one page. There is no call that takes several pictures and returns one PDF — to combine them you would post the first and then edit the model.

Read the reference for this endpoint · Get a credential

Questions

Which image formats can I use?

JPG, PNG and WebP.

Can I choose the page order?

Yes. Drag the images into order before building the PDF.

Will the images be compressed?

They are placed as they are rather than re-encoded. If the result is larger than you want, run it through the compress tool afterwards.

How many images can I use?

Three files a session on the free tier, at up to 25 MB each.

Are my photographs uploaded?

No. The PDF is assembled in this browser tab.

Next

Tool What it does Runs in Same thing, programmatically
Convert PDF to JPG Get every page as a JPG or a PNG. your browser GET /api/v1/documents/{id}.png
Merge PDF files Join several PDFs into one, in the order you choose. your browser no endpoint
Compress a PDF Get a file under a size limit, choosing what quality to spend. your browser no endpoint
Reorder PDF pages Drag pages into the right order. your browser the document model

All 16 tools · API documentation · What an account adds