Skip to main content

How We Detect AI-Generator Indicators in PDFs

The AI Detection tool does not read or judge the text of your document. It reads the metadata fields that name the software that produced the file, compares them with a fixed list of PDF generators and adds up a score from 0 to 100. This page explains every step, the thresholds, and where the method gives misleading answers.

What the check reads

  • The Creator and Producer fields, preferring the XMP values when the file has an XMP packet
  • Whether the Author and Title fields are empty
  • Automation words in the generator text: python, script, automated, generated and api

What a result does not establish

  • Who or what wrote the text. The wording, style and content are never analysed.
  • That a file is human-made. A score of 0 only means no weighted generator name was found.
  • That the metadata is genuine. Creator and Producer can be edited, removed or copied by any PDF program.

Step 1: Reading the metadata

Uploads pass the same gate as every PDFCheck checker: the file must be detected as a PDF, contain a %PDF- header and not look like a ZIP archive or an executable. PDFCheck then reads the document information dictionary with pdfinfo from the Poppler library and scans the file for an XMP metadata packet.

When both sources are present, the XMP values win. A file whose information dictionary says "Microsoft Word" but whose XMP packet names pdf-lib is scored as pdf-lib. Some programs update only one of the two places, so the two sources can disagree.

Step 2: Matching generator names

The Creator and Producer values are joined, converted to lower case and compared with a built-in list of 108 software name fragments. The list covers office suites, Adobe products, TeX engines, browsers, design tools, scanners, OCR software and PDF programming libraries. Only 23 entries carry an AI-risk weight; everything else, including Microsoft Word, LibreOffice, pdfTeX and Adobe Acrobat, adds nothing to the score.

There is no database of fingerprints left by AI writing assistants, and chat assistants do not normally sign the PDFs they help create. The list does include product names such as ChatGPT, OpenAI, Claude, Gemini and Copilot, but they only match when that name literally appears in Creator or Producer. In practice the weighted entries that match are programming libraries and headless browsers that scripts use to build PDFs, whether a person or an AI assistant wrote the script.

  • High weight, 40 points: ReportLab, PyPDF, PyPDF2, pdfplumber, WeasyPrint, pdf-lib, PDFKit, Puppeteer, Playwright and the AI product names above.
  • Medium weight, 20 points: FPDF, FPDF2, jsPDF and Headless Chrome.
  • Low weight, 10 points: pdfmake and wkhtmltopdf.
  • Matching is by substring and each entry counts once. Overlapping entries can both match: "PyPDF2" contains "pypdf", so it collects points from two entries, and a short entry such as "gpt" matches any longer name that contains it.

Step 3: Adjusting and grading the score

Two extra rules apply only after a weighted generator has matched: an empty Author field adds 10 points and an empty Title field adds 5. Separately, each automation word found in the generator text adds points: python, script and api add 5 each, automated and generated add 10 each. The total is capped at 100.

The level follows from the total: 50 or more is high, 25 to 49 is medium, 1 to 24 is low and 0 is none. From 25 points the report marks the file as having AI-generator indicators, shown as "Strong indicators" for high and "Some indicators" for medium. Low and none are reported as no generator indicators found. The report always lists the matched software names so you can see why a score was given.

Known false positives

Most matches come from ordinary software. Invoices, statements, tickets and reports from web applications are often built with ReportLab, WeasyPrint, PDFKit, pdf-lib or a headless browser, and these files can score high with no AI involved. Developer tools, report generators and test suites use the same libraries. Substring matching adds further noise: the word "script" inside the PScript5.dll printer driver adds points to documents printed to PDF from Windows.

Known false negatives

Text written with an AI assistant and pasted into Word, Google Docs or LibreOffice carries the office suite's name and scores 0. A file whose metadata was stripped, rewritten or re-saved by another program, for example after compression or printing to PDF, loses the original generator name. Scanned documents show the scanner or OCR software instead.

How to use the result

Treat a high or medium result as a reason to ask questions, not as a finding. Ask how the document was produced, compare it with other files from the same source, and look at the full Creator and Producer strings and the creation and modification dates in the report. Do not use the score alone to accuse someone of using AI or to make an academic, hiring or legal decision.

Worked examples

These results come from running the scoring rules on the metadata shown. They are illustrations, not customer files.

Metadata Score Result
A script-generated report: Producer "ReportLab PDF Library - www.reportlab.com", no Author, no Title 55 (40 + 10 + 5) High: strong indicators
The same report with Author and Title filled in 40 Medium: some indicators
A merged file: Producer "PyPDF2", no Author, no Title 95 (two library entries, plus 15) High: strong indicators
A web page rendered by a headless browser: Creator contains "HeadlessChrome", Producer "Skia/PDF m120", Title set, no Author 30 (20 + 10) Medium: some indicators
A page converted with wkhtmltopdf, Title set, no Author 20 (10 + 10) Low: no indicators flagged
A document printed to PDF on Windows: Creator "PScript5.dll", Producer "Acrobat Distiller" 5 (the word "script") Low: no indicators flagged
A word-processor export: Creator and Producer "Microsoft Word for Microsoft 365" 0 None
A LaTeX paper: Creator "LaTeX with hyperref", Producer "pdfTeX-1.40.25" 0 None

Limits and file handling

The Free plan allows 100 checks a day and files up to 50 MB; Pro and AI plans allow files up to 100 MB. The upload is read from temporary request storage and is not copied into long-term storage. The extracted metadata and score are saved as a report behind a private link. Guest reports are deleted after 90 days; reports owned by an account remain until the account is deleted.

Privacy Policy

Check a PDF for generator indicators

Upload a PDF to see its Creator and Producer values, the matched software and the score they produce.

Check AI indicators

Related