Preflight PDF
Kiểm tra PDF trước khi gửi nhà in: font missing, ảnh thiếu DPI, color space, bleed — báo lỗi rõ ràng trước khi tốn giấy.
Drop a PDF here
or click to select a file, or paste
Inspect a PDF before sending it to print
PDF Preflight reads a PDF in your browser and reports issues that often cause printing surprises: missing trim or bleed boxes, non-embedded fonts, RGB content, low-resolution images, transparency, and more. It pairs the structural view from pdf-lib with a per-page render from pdf.js so you can see and browse problems in context.
1. Load a PDF
- Drop zone. Drag a .pdf onto the dashed area or click to browse. Pasting a PDF file from the OS also works.
- Header check. The tool verifies the %PDF magic bytes before analysis and rejects files that do not look like a PDF.
- Remove file. The X icon clears the report and releases the parsed pdf.js document.
2. Page preview
- Canvas render. The current page renders into a canvas via pdf.js. The Trim, Bleed, Crop, and Media boxes are overlaid as dashed outlines when they exist on the page.
- Page navigation. Use the arrows to move through pages. Clicking a page-tagged issue in the right panel jumps the preview to that page.
3. Report panels
- Summary. File name, size, PDF version, and the count of errors, warnings, and informational findings.
- Document. Title, author, encryption status, and other top-level metadata pulled from the PDF dictionary.
- Fonts. Each font is listed with its name, embedding status, and type. Embedded fonts have a Download button that saves the raw font bytes (.ttf, .otf, or .pfb) extracted from the file.
- Issues. Findings are grouped by category and severity. Each entry shows a short message and, when relevant, the page number; clicking it scrolls the preview to that page so you can see the cause.
What does the preflight actually check?
Two passes run in the browser. The first uses pdf-lib to inspect document structure, page boxes, fonts, and metadata. The second uses pdf.js to walk page operators for image resolution, colour spaces, and transparency. Each finding is tagged as error, warning, or info.
Why are page-level issues sometimes missing on the preview?
The preview renders the page with pdf.js and overlays MediaBox, TrimBox, BleedBox, and CropBox when present. If a box is omitted from the PDF, no overlay is drawn for it, and that fact also shows up as a geometry warning.
Can I extract embedded fonts?
Yes, when the font is genuinely embedded. The Fonts panel lists each font with its name and type, and provides a Download button that saves the raw font bytes with the right extension (.ttf, .otf, or .pfb).
Does my PDF leave the browser?
No. The file is read with FileReader, parsed with pdf-lib and pdf.js inside the tab, and the report is generated locally. Nothing is uploaded to appkiro or any other service.
Should I trust this in place of a commercial preflight?
Treat it as a fast first pass. It catches common issues like missing trim boxes, non-embedded fonts, RGB content, low-resolution images, and unflattened transparency, but commercial tools cover more colour-management edge cases and ICC profiles.