Inspect, rewrite, verify

PDFClean runs the same three stages on every file. The third one is the reason the tool exists: the cleaned file is read a second time, from its saved bytes, before you can download it.

1. Inspect

The file is read with the browser's File API and parsed in memory. PDFClean looks at the places a PDF keeps document metadata:

  • The Info dictionary. The classic document properties: Title, Author, Subject, Keywords, Creator, Producer, CreationDate and ModDate. It can also hold custom keys such as Company, which is common in PDFs exported from office suites.
  • The XMP packet. A newer metadata format, stored as an XML stream that often duplicates the Info fields and adds editing history, tool versions and timestamps.
  • The trailer file identifier. An /ID value that identifies the file itself, independent of its content.

Every field found is listed on the card for that file, including custom keys you might not expect. If a file has no metadata at all, the tool says so instead of inventing fields.

2. Rewrite

Removal is not a text search. The Info entries you asked to remove are deleted from the document structure, the XMP reference is removed from the catalog, and the file identifier is dropped from the trailer. Then the whole PDF is rebuilt from its objects.

Pages, text, images and structure are preserved; the metadata is not. Because the file is rebuilt, its byte size may change — usually it shrinks, and very small files can grow by a few bytes. The pages look the same when opened in any reader.

If you choose Keep selected fields, only the fields you tick are retained. Custom keys, the XMP packet and the file identifier are removed either way, because they are not part of the selection.

3. Verify

This is the part most tools skip. PDFClean takes the bytes it just produced, parses them again as a fresh document, and reads the metadata locations a second time. For every field that should be gone it checks that the entry is absent. For every field you chose to keep, it checks the value is unchanged. It also confirms that the XMP reference and the file identifier no longer exist.

The download only appears when every check passes. If the second read finds a leftover field, the card says so, the failed check is shown, and no download is offered for that file.

The check list is visible next to each result. It is not a summary written in advance — it is generated from the re-opened file, one line per claim.

What is removed

LocationWhat goes
Info dictionaryTitle, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate and any custom keys
XMPThe metadata packet referenced from the catalog
TrailerThe file identifier (/ID)

What is not removed

Being precise about limits matters more than claiming completeness. This version does not touch:

  • Annotation and comment authors. If a PDF contains comments, their author names are stored on the annotations, not in the document Info dictionary.
  • Embedded files and their metadata. Attachments are carried through as they are.
  • Page content. Text, images and anything a reader can see are preserved — including an author name typed into the page itself.
  • Digital signatures. Rewriting the file invalidates existing signatures. If a signature matters, keep a copy of the original and do not clean the signed version.

Encrypted PDFs

An encrypted or password-protected PDF is detected and refused with a clear message. No cracking is attempted and no output is produced. If you own the file and know its password, unlock it in a PDF application first, then clean the unlocked copy.

Batches and the report

Multiple files can be dropped at once. Each file is inspected, cleaned and verified on its own, and the batch download is a ZIP that contains the cleaned PDFs pluspdfclean-report.txt: per file, the byte sizes, the fields removed, the fields kept and the verification result. A file that fails verification is left out of the ZIP.

Why there is no upload

There is no server-side PDF code on this site, no API endpoint that accepts files and no storage bucket. The page is static; the cleaning runs in the tab. You can prove it: load the page, switch off your network connection and clean a file.

Clean a PDF now →