Validate a PDF for Structure and File Health
How to tell whether a PDF file is damaged
Check a PDF for structural problems and download a text report. Use the findings when a document fails to open or behaves unexpectedly in a PDF reader. A structural check does not establish accessibility, print-production compliance or the accuracy of the document’s contents. After investigating a reported problem, test the file in the application where it will be used.
Cost: Free to use. File size and usage limits apply.
How to check a PDF for errors
Upload one PDF
Click Choose PDF or Upload PDF, or drop the file onto the preview area. Files up to 200 MB are accepted. A PDF you already used in another tool is listed under Uploads.
Confirm the file
The file appears under Source PDF with its size, and the preview shows its pages. A PDF that will not display in the preview can still be validated.
Click Validate PDF
Click Validate PDF. There are no settings to choose. The file is checked on our servers, and the report replaces the preview when the job is done.
Read the last line
validation okmeans no structural error was found. Any other last line names a problem; the next section explains the common messages.Copy or save the report
Copy puts the report on your clipboard, for example for a support ticket. Download report saves it as a .txt file. Your PDF stays unchanged.
How to read the report
The report is plain text from pdfcpu, the open-source PDF library that runs the check. A line beginning with validating(mode=relaxed) names the check mode. The last line is the result. Other lines are notices or notes written while the file was read.
validation ok
No structural error was found. The objects, the cross-reference data and the required entries fit the PDF specification within the tolerance of relaxed mode.
validation error (obj#:…): …
The file could be read, but part of it breaks a rule. The text at the end names the rule. dict=pageDict required entry=MediaBox missing means a page has no page size. validatePages: page tree invalid means the list of pages is inconsistent, for example a page count that does not match the pages present. validateFontDict: missing Subtype points to an incomplete font definition.
Read: xRefTable failed: …
The reader could not resolve the document structure. Its cross-reference data, the index of where objects start, may be damaged, or an object may be cut off. no matching %%EOF for startxref means the expected end-of-file marker could not be found. Check that the complete file arrived, then try a fresh copy from the source.
pdfcpu skipped: and pdfcpu repaired: lines
Notes from reading the file. skipped: missing obj #12 means the index points to an object that is not where it should be. repaired: means something was fixed in memory so the check could continue. Many missing obj lines in a row suggest the whole index is out of step with the file, for example after a transfer that changed line endings.
please provide the correct password
The PDF has an open password. Remove it with Unlock PDF if you know the password, then check the unlocked copy. PDFs that only restrict printing or copying are checked without a password.
Catalog: missing root dict
No document catalog was found. Every PDF needs this root object because it points to the pages. The file may start like a PDF but contain something else, or it is badly damaged.
PDF 2.0 notice
Files that declare PDF 2.0 get a boxed notice that pdfcpu supports PDF 2.0 at a basic level. It is not an error. The result line follows below it.
What the check covers and what it does not
A PDF is a set of numbered objects such as pages, fonts and images. A cross-reference table records where each object starts, and a trailer points to the document catalog. The check reads all of this and compares it with ISO 32000-1:2008 (PDF 1.7), plus basic checks for PDF 2.0.
It runs in relaxed mode: the same rules as a strict check, with tolerance for common deviations, for example a document catalog without its /Type entry or a stream whose declared /Length is wrong. You do not need to choose a mode in the settings.
Page content and image data are not decoded, so a damaged image or drawing can still pass. The check also does not test PDF/A, PDF/X or accessibility conformance, does not verify digital signatures, does not check whether fonts are embedded and does not follow links. Use a dedicated preflight tool for those standards.
As a rule of thumb, the most reliable fix is a new file from the source: export or save the document again from the program that created it, or download it again if it was cut off. Printing to PDF also creates a new file, but it flattens form fields and usually drops links and bookmarks.
Formats and limits
- Input format
- PDF. Files with an open password must be unlocked first; PDFs that only restrict printing or copying are fine.
- Output
- Plain-text report shown on the page, with Copy and Download report (.txt file)
- Your PDF
- Only read. It is not changed and no new PDF is created.
- Maximum file size
- 200 MB
- Files per job
- 1 PDF
- Settings
- None. The check always uses relaxed mode against the PDF 1.7 rules, with basic PDF 2.0 support.
- Processing
- On our servers with the pdfcpu PDF library. No external or AI service is involved. A job can run for up to 15 minutes.
- Watermark
- None
- Storage
- Uploads and reports are deleted automatically after 48 hours for guests and after 30 days for free accounts. Paid plans can keep files longer.
Frequently asked questions
My PDF opens fine. Why does the report show an error?
PDF readers are forgiving. Many rebuild a damaged cross-reference table or skip a missing entry silently. The check reports the problem instead, and stricter software such as print systems, archives or other PDF libraries may reject the same file. If the file matters, replace it with a freshly exported copy.
The report says validation ok, but a page still looks wrong. How?
The check tests the structure, not what the pages look like. A damaged image or drawing can pass because that data is not decoded. Page through the file in a viewer, and test it in the software where it will be used.
Why does the report list only one error?
The check stops at the first rule it finds broken. After you fix that problem, usually by exporting the file again, run the check once more to see whether another one follows.
Does the check repair or change my PDF?
No. The file is only read, and the PDF in Uploads stays exactly as it was. The only new file is the text report. Once the check passes, PDF Info shows details such as the PDF version and page count.
Is my PDF sent to an external service?
No. The check runs on our servers with pdfcpu, and no AI or third-party service is involved. Uploads and reports are deleted automatically after the storage period listed above.