# 3.5 x 2 in at 300 DPI needs 1050 x 600
1536 ≥ 1050 and 1024 ≥ 600 → accept
The business card flow, start to finish
A customer uploads card artwork. Six operations later you have a press-ready PDF, or a specific reason to reject the file. That is print file preparation as a single request. The worked example is a business card api in miniature, and posters, labels, and packaging run the same six operations.
1536 x 1024 px. Enough for a 3.5 x 2 inch card at 300 DPI, with room to spare.
The border operation grows the sheet by a fixed number of pixels so the trim has something to cut into. Shown in orange here so you can see it. In production you match the artwork background and the extension is invisible.
→ application/pdf, 1 page
pdfinfo=colorinfo:true
→ c 0.77 · m 0.99 · y 1.00 · k 0.04
"isgrayscale": false
"pagesize": 1676 x 1164
A real 300 DPI PDF, and a real report of what is on it. The sheet is 1676 x 1164 rather than the artwork’s 1536 x 1024, which is the border showing up as page geometry.
Check the resolution before you accept the file
A file has no DPI until you decide how big it prints, which is why a standalone dpi checker can only guess. imagesize returns the pixel dimensions and the arithmetic is trim size times press resolution. A 3.5 by 2 inch card at 300 DPI needs 1050 by 600 pixels.
Wired into your upload path that is an image resolution checker running on every file, and the cheapest print quality checker you will ever ship, because it runs before the order exists.
Artwork that falls short can still be rescued. The upscale operation runs an AI upscaler with a photo or artwork style hint, which saves the borderline cases that would otherwise cost you the order.
{ "height": 1024, "width": 1536 }
# the rescue path for borderline art
upscale=upscale:true,style:artwork/
https://cdn.filestackcontent.com/
border=width:70,color:EF4A25/
output=format:pdf,density:300/
gjbAAWVPQAqLCwZvUvxQ
# then fix the page geometry
pdfconvert=pageformat:letter,
pageorientation:landscape/
Render the print PDF
output=format:pdf,density:300 rasterizes at press resolution, which makes one endpoint a 300 dpi converter and a pdf generation api at the same time. pdfconvert then sets the page format from a3, a4, a5, b4, b5, letter, legal, or tabloid, sets portrait or landscape, and selects which pages survive.
Used as a pdf conversion api it takes an image in and hands back a print ready pdf. Used as a document conversion api it covers the office formats customers upload when you asked for artwork and got a Word file instead.
border grows the sheet by a set number of pixels in a solid color, which covers artwork with a solid background. True bleed on a photographic edge needs the artwork itself extended, so treat this as sheet geometry rather than a prepress bleed engine.
Inspect the PDF you just produced
pdfinfo=colorinfo:true is the preflight pdf step. It returns per-page CMYK ink coverage, an isgrayscale flag, the page count, the page size, the PDF version, and whether the file is encrypted or carries JavaScript.
It reports color rather than converting it. Filestack has no RGB to CMYK conversion, and dedicated pdf preflight software goes further and converts too. What this gives you is the file’s real colour information at upload, which is the moment a rejection is still cheap.
{ "colorinfo": [ { "c": 0.77383,
"m": 0.99485, "y": 0.99653,
"k": 0.04233 } ],
"pages": 1,
"isgrayscale": false,
"pagesize": { "width": 1676,
"height": 1164 },
"pdfversion": "1.4",
"hasjavascript": false,
"encrypted": false }
Batch it for the press
A Workflow runs the preflight on every upload rather than when someone remembers to check. That is print workflow automation without buying print automation software, and it is the prepress automation step most teams put off until a press invoice forces the issue. Files that pass go to the production bucket, files that fail trigger a webhook back to your app so the customer hears about it immediately. The zip operation bundles a finished order into one archive for the press.
Frequently Asked Questions
What makes a file print ready?
A print ready file has enough resolution for its physical size at the press resolution, the correct page geometry including bleed, and color information the press can use. A Filestack print pipeline checks resolution and geometry at upload and reports the color information of the PDF it renders.
How do I check if an uploaded image is 300 DPI?
DPI is a relationship between pixels and physical size, so an image file alone does not have a DPI until you decide how big it will print. The imagesize task returns the pixel width and height, and your code compares them against the trim size times 300. A 3.5 by 2 inch business card needs at least 1050 by 600 pixels.
Can I generate a print resolution PDF from an image?
Yes. The output task converts to PDF and its density parameter sets the rasterization DPI, so output=format:pdf,density:300 renders a 300 DPI print PDF. The pdfconvert task then sets page format and orientation.
Can Filestack convert RGB to CMYK?
No. Filestack does not convert color spaces. What it does is report them: pdfinfo with colorinfo:true returns per-page CMYK ink coverage and an isgrayscale flag, so you can detect a file that will not print correctly and reject it at upload rather than at the press.
What happens when a customer uploads artwork that is too low resolution?
That is your decision, made with real numbers. The imagesize response tells you the pixel dimensions before you accept the file, so you can reject it with a specific message, or run the upscale task to rescue borderline artwork, while the customer is still on the page.
Where does this fit in a print product?
Filestack is the file layer inside a web to print storefront, a print on demand api, or a direct mail api. It takes the artwork upload, reports pixel dimensions, upscales borderline art, grows the sheet, renders the PDF at your density, reports ink coverage, and zips the order for the press. If you are building one of those products, this is the part you were about to write with ImageMagick and Ghostscript.
What does this pipeline leave to other tools?
Storefronts, catalogues, and pricing. Color space conversion between RGB and CMYK. True bleed on photographic edges, imposition, crop marks, and press signatures. Variable data printing, where your templating engine picks the record and this pipeline checks the file that comes out. Press scheduling, production management, shipping, and fulfillment.
Is Filestack a printing api?
No. Filestack is a file processing api that prepares files for print: it checks resolution, renders a print ready pdf, and reports what is on the page. Pair this print api with a print and mail api, or a postcard api, when the job ends with paper in an envelope.