Free PDF tool
Check the resolution of images in a PDF
What counts is how many pixels an image has for the space it fills on the page. The analyzer measures that for every image, flags anything below 300 dpi for print or 150 dpi for screens, and exports the list as CSV.
Your PDF stays on your device
- Free, no account needed
- Built on PDF.js
How it works
Check the resolution of images in a PDF in 4 steps
- 1
Add a PDF
Drop the document onto the tool or choose it from your device.
- 2
Choose pages
Check the whole document or only the pages that go to print.
- 3
Analyze
Select Analyze images. Every placement is measured in your browser.
- 4
Review and export
Sort out images marked low, then download the list as CSV for your printer or designer.
Questions
Frequently asked questions
Are my files uploaded to a server?
No. The tool runs entirely in your browser: the PDF is read, changed and saved on your device, and its contents are never sent to our servers.
What is effective DPI?
An image's pixel width divided by its printed width in inches. A 3000-pixel photo printed 10 inches wide has 300 dpi; the same photo stretched to 20 inches has only 150. The tool reports the lower value of both directions.
Which resolution do I need?
300 dpi is the usual target for offset and high-quality print. 150 dpi is enough for screens and office printers. Below 150 dpi, images tend to look soft or pixelated on paper.
Why is the same image listed more than once?
The analyzer lists every placement. If a picture appears on several pages or at different sizes, each use has its own effective resolution.
Automate it
Do the same in your application with Dynamic Document API
When you generate documents with the API, you set the image resolution yourself: the PDF options downsample every picture to a target DPI, so print files and lightweight screen versions come from the same template.
POST /v1/pdf/from-templateAvailablecurl -X POST https://api-eu.dynamicdocumentapi.com/v1/pdf/from-template \
-H "Authorization: Bearer $DYNAMIC_DOCUMENT_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"template_id": "tpl_01J9ZR3M5P7Q9S1T3V5X7Z9B1D",
"data": {
"title": "Autumn brochure"
},
"pdf": {
"compression": {
"image_dpi": 300,
"jpeg_quality": 90
}
}
}'const response = await fetch("https://api-eu.dynamicdocumentapi.com/v1/pdf/from-template", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DYNAMIC_DOCUMENT_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
"template_id": "tpl_01J9ZR3M5P7Q9S1T3V5X7Z9B1D",
"data": {
"title": "Autumn brochure"
},
"pdf": {
"compression": {
"image_dpi": 300,
"jpeg_quality": 90
}
}
}),
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const result = await response.json();
console.log(result);import os
import uuid
import requests
response = requests.post(
"https://api-eu.dynamicdocumentapi.com/v1/pdf/from-template",
headers={
"Authorization": f"Bearer {os.environ['DYNAMIC_DOCUMENT_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4()),
},
json={
"template_id": "tpl_01J9ZR3M5P7Q9S1T3V5X7Z9B1D",
"data": {
"title": "Autumn brochure",
},
"pdf": {
"compression": {
"image_dpi": 300,
"jpeg_quality": 90,
},
},
},
timeout=90,
)
response.raise_for_status()
print(response.json())