Polotno

Live demo

Print preflight in the editor

Fifteen pre-press checks against the live design, in a panel beside the canvas. Eight repair the artwork in place. The export stays locked until the blocking problems clear.

The editor above opens on an A6 postcard carrying fifteen pre-press problems, none of them visible on screen. Eight of them the panel repairs in place.

Print rejections are an operating cost you inherit by default. The only place to remove them is the editor you are already embedding.

The rejection loop is yours by default

Print jobs come back for a short list of reasons: no bleed, wrong trim size, an unembedded font, RGB artwork, an image placed larger than its pixels allow. The list is short and it does not change.

Most operations only catch them at the end. Files arrive from the customer already exported, a preflight tool or a prepress operator finds the problem, and a rejection goes back out. Then the cycle runs: rejection email, a customer who has never heard of bleed, a re-export, a second review. Every order that fails costs your support team that cycle, for as long as the product exists.

The fix has to live where the design still is

File preflightDesign preflight
Runs onthe exported PDFthe live design in the editor
Readscontent streamsnamed elements and your own metadata
Repairs bypatching the file, or rejecting itediting the design object
Acted on byyour prepress operatorthe customer, before submitting
ToolsPitStop, pdfToolbox, Acrobat, veraPDFthis demo

A PDF has been flattened into content streams, so the checker sees glyphs and image XObjects. The design still has its structure, so the checks read intent. {{first_name}} is a merge field nobody filled in. The 84 DPI photo has a print master, because the asset id is on the element.

That difference is what makes repair possible. Eight rows carry a fix: add 3 mm bleed, substitute an available font, raise type to 6 pt, thicken a hairline, move text onto the layout margin, fill the merge field, darken low-contrast text, fetch the print master. Each is an edit to the design object, so it lands on the canvas, joins the undo stack, and re-runs the checks. After export none of that is available. A file can be patched or rejected, and the person who caused the problem has gone.

Two details worth noting. The safe-area fix moves type to the layout margin rather than the 4 mm legal minimum, because landing text at exactly 4 mm satisfies the rule and leaves the card visibly out of alignment with the rest of the layout. Resolution is the one problem no fix computes away, since the pixels were never captured. That row fetches the master your asset record points at, and where there is no master it stays a plain failure with nothing to click.

What it checks

CheckRule
Trim sizematches the ordered product (148 × 105 mm)
Working resolution300 DPI. The SDK default is 72
Bleed3 mm, and only required when artwork reaches the edge
Image resolution300 DPI at the size the image is placed
Font availabilityfamily must be in the declared font list
Type size6 pt minimum
Safe areatext no closer than 4 mm to the trim
Artwork past the trimflagged while bleed is 0
Merge fieldsunfilled {{...}} placeholders
Contrast4.5:1, measured on solid backdrops only
Colour gamutsaturation above what four inks hold
Flat black100% K across more than 3% of the page
Hairlines0.25 pt minimum
Transparencyopacity, shadows, blurs, filters
Excluded elementshidden, or set not to export

Results carry five statuses: pass, warn, fail, note, and unknown. The last two stay separate on purpose. A note is something the check determined, such as this file using transparency. An unknown is something it could not determine. Merge them and the report starts inventing gaps, or hiding them.

The rules are yours

Web-to-print platforms that check designs ship their own rule set, their own thresholds, and their own wording. That is the trade you make when you adopt a platform. Here the checks are about 600 lines in your repository:

  • Rules per SKU. The thresholds are one object. Load it from your catalogue and the same engine enforces the right spec for whatever is being ordered.
  • Your assets. The print-master lookup reads custom metadata on the element, so it resolves against your own DAM.
  • Your fonts. The SDK ships five Google fonts by default. Declare your own list and a missing font becomes a real finding.
  • Your placement. The panel is React beside the editor, so it can be a rail, a drawer, a checkout step, or a gate on the order button.
  • Your server. The checks read plain design JSON, so the same thresholds can run server-side against a saved design with your asset metadata in place of the browser image lookups.

What it does not do

Browser-side design checks do not replace a preflight engine, and the gaps are specific:

Not coveredWhere it belongs
Total ink coverage (TAC)a preflight engine with an ICC colour engine
Colorimetric gamut through an output profilesame. The check here is a saturation heuristic
PDF/X-1a and X-4 conformanceAcrobat Preflight, callas pdfToolbox, veraPDF
Trapping and impositionEsko, Prinergy, and equivalents
Separation control, overprint simulationPitStop and pdfToolbox action lists
Barcode and dieline verificationyour production workflow

PitStop and pdfToolbox are mature products doing work this does not attempt. They run on a finished file, which is where certification belongs. Asking a customer to fix a headline at that stage is already too late.

Where it fits in the pipeline

1. Design time

The checks above, in the editor, while the design is still editable and the customer is still present.

2. Export

Polotno’s PDF export writes CMYK PDF/X-1a with bleed, crop marks, and spot colours with overprint.

3. File time

A certified validator signs off the finished PDF. Our free PDF preflight checker covers part of that stage in the browser.

Frequently asked questions

Why is this a demo and not a Polotno feature?

Because the rules belong to your product. A shipped preflight feature would arrive with our thresholds and our wording baked in, which is the thing this page argues against. The SDK gives you the design tree and the helpers; the fifteen checks here are an example you copy and change.

Does this replace PitStop or pdfToolbox?

No. Those validate a finished PDF and belong in production. This validates the design before the PDF exists, so the customer clears the problem while they still can.

Can it check total ink coverage?

No. TAC needs an ICC colour engine and an output intent. Neither runs in a browser. That report comes from a certified tool on the exported file.

Why is out-of-gamut colour a warning?

Because it is a heuristic. It flags colours more saturated than four inks hold, which is strong evidence without being a measurement. Anything the browser cannot determine is reported as undetermined.

Does checking on every change slow the editor?

No. Validation is throttled to one run per 600 ms and image dimensions are cached per source, so each asset is measured once however long you keep editing.

Can I read the source?

Yes. The full example is a standalone app you can run and take apart.

Build your own editor on Polotno SDK

TRUSTED BY

100,000+

CREATORS

300+

BUSINESSES

ExpediaUnbounceLovePopPostGridPredis.ai