Convert JPG to PDF
Drop in your pictures. Drag them into the order you want.
How it works
- Drop in your images.
- Drag them into order.
- 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 -s "https://docubend.com/api/v1/pdfs?title=Receipt" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: image/jpeg" \
--data-binary @receipt.jpg
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();
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"]
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 |