PDF to Drupal Page

Don't Host the PDF. Publish It as a Real Drupal Page.

Convert PDF content directly into Drupal content: headings, paragraphs, lists, tables and images rebuilt as native Paragraphs and Layout Builder sections, or clean CKEditor 5 HTML. The document stays available for download. The content becomes readable by screen readers, searchable by citizens through Search API, and indexable by Google.

Paragraphs, Layout Builder & CKEditor 5WCAG 2.1 AA outputOCR for scanned filesOriginal PDF preserved
BEFORE · budget-fy2026.pdfHIGH RISK · UNTAGGED
A flat file. No headings, no reading order, no alt text. Invisible to Search API and to assistive technology.
AFTER · /budget/fy-2026/WCAG 2.1 AA · PASS
Native Paragraphs on your node. Real headings, table markup, alt text and a permanent path alias citizens can link to.
The Problem

Remediating a PDF Makes It Compliant. Converting It Makes It Usable.

The average government website hosts 200 to 5,000 PDF documents. Tagging them is the floor, not the ceiling. A tagged PDF is still a download that opens outside your site, ignores your mobile layout, and never appears in a resident's search results. Content that matters to the public belongs on a node.

Invisible to site search

Residents search your site for "leaf collection schedule" and get nothing, because the answer is on page 14 of a PDF that Search API never indexed as content.

Unreadable on a phone

A fixed-width letter page forces pinch-and-zoom on the device most citizens actually use to reach you.

Impossible to update

A changed fee means re-opening the source file, re-exporting, re-tagging, re-uploading. Most agencies just don't.

A liability that compounds

Under DOJ ADA Title II, every untagged document on your servers is exposure. And the archive grows every year.

The Converter

See Exactly What You'll Get, Before You Publish

The PDF on the left. The Drupal content it becomes on the right. Every detected region is labeled, and every Paragraph is yours to accept, merge or discard before the node is created.

SOURCE · page 1 of 246 regions detected
Mapped automaticallyNeeds your input
OUTPUT · DRUPAL CONTENTreading order preserved
Paragraph types
paragraph: headingFY 2026 Adopted Budgeth1
paragraph: text3 text Paragraphs · reading order preserved
paragraph: table4 rows · header row with scope
media: imageWrite alt text to continue →
media: filebudget-fy2026.pdf · original attached
# Paragraph: Heading
type: heading
field_heading_level: h1
field_heading_text: "FY 2026 Adopted Budget"

Interface shown for illustration. Detected regions and Paragraph mapping depend on the source document.

The Mapping

Every PDF Element Has a Native Home

Nothing is dumped into a raw HTML blob. Structure becomes structure: real Paragraph types, or filtered CKEditor 5 HTML that passes your text format.

How each PDF element maps to a Drupal Paragraph type or CKEditor 5 HTML element
In the PDFDrupal ParagraphCKEditor 5 HTML
Document titleHeading Paragraph (h1)<h1>
Section headingHeading Paragraph (h2–h4)<h2> … <h4>
Body paragraphText Paragraph<p>
Bulleted / numbered listText Paragraph<ul> / <ol>
Table with header rowTable Paragraph<table> + <th scope>
Image, chart or logoMedia (image) + alt<img alt="">
Pull quote / callout boxQuote Paragraph<blockquote>
Multi-column pageLayout Builder sectionstacked <div>
The original fileMedia (file)<a href="…pdf">
How It Works

Five Steps. No Copy-Paste, No Retyping.

Pick the PDF

Choose any file already referenced by a File or Media entity, drop in a new one, or point at a URL. Bulk-select a whole library.

Extract & OCR

Text, tables and images are pulled out with reading order intact. Scanned pages run through OCR first.

Map to Paragraphs

Each region becomes a Paragraph, Layout Builder section, or CKEditor 5 HTML. Heading levels are inferred from the document's own hierarchy.

Review side by side

Approve, merge or delete Paragraphs. Anything the engine isn't sure about gets flagged, not guessed. Alt text first.

Publish as a node

Creates a draft node with your content type, a clean path alias, and the original PDF attached as a Media download.

The Result

One Conversion Fixes Four Problems at Once

Accessibility

Real headings, list and table semantics, and enforced alt text: the things a screen reader actually needs.

Findability

The content enters Search API and search-engine indexes as a node, with its own title and path alias.

Mobile & translation

Text reflows to any screen and works with Drupal’s translation workflow. Neither is possible inside a fixed PDF.

Maintainability

Next year's fee change is an inline edit by the department that owns the node, not a new export cycle.

Example document · before & after
Hosted PDF
31/100
Accessibility risk score
✕ No tag structure✕ No document title✕ Images without alt✕ Not in site search
Converted node
98/100
WCAG 2.1 AA validation
✓ Semantic headings✓ Table headers with scope✓ Alt text on every image✓ Indexed & searchable
Illustrative scores from a 24-page budget document. Your results depend on the source file: scanned originals need more review than digitally generated ones.
Scope & Honesty

What Converts Cleanly, and What Needs a Human

Automatic conversion handles the majority of a typical government document. The rest is flagged for review rather than silently mangled, because a wrong table header is worse than no table at all.

Drupal 10.6+ / 11Paragraphs + Layout BuilderMultisite readyAny content type
Converts automatically
Headings and body textBulleted & numbered listsSimple and merged-cell tablesEmbedded images and chartsLinks, emails, phone numbersTwo- and three-column layoutsFootnotes and captions
Flagged for review
Alt text for every imageCharts needing a data summaryScanned handwritingFillable form fieldsNested tablesSignature and seal graphicsLow-resolution scans
Where it runs

A Drupal module for the Drupal you already run.

PDF to Drupal Page installs with Composer on any Drupal 10.6+ or Drupal 11 site and sits alongside the PDF Accessibility Remediator. Every scanned document offers a one-click convert-to-node path from the remediation queue. No CMS migration required.

Works with
ParagraphsStructured content types
Layout BuilderMulti-column sections
CKEditor 5Filtered semantic HTML
Bulk conversionDrush across a library
RedirectsOld PDF path → new node

Questions agencies ask first

Do we lose the original PDF?

No. The file stays as a Media entity and is attached to the new node as a download, so records requirements and existing citations still hold.

What happens to links pointing at the old PDF?

You can create a redirect from the document path to the new node during conversion using Drupal’s Redirect module, or leave both live.

We build pages with Layout Builder. Does that work?

Yes. Choose Layout Builder output and multi-column source pages are rebuilt as Layout Builder sections. Prefer structured content? Choose Paragraphs. Prefer body HTML? Choose CKEditor 5.

Can we convert a whole archive at once?

Bulk conversion runs through Drush and creates one draft node per document. Drafts wait for a human to approve flagged items before anything publishes.

Is a converted node enough for ADA Title II?

A converted node is validated against WCAG 2.1 AA before publishing. If you also keep the PDF available, that document still needs to meet accessibility requirements on its own.

Request a Conversion

Send Us Your Worst PDF. We'll Show You the Node.

There's no self-serve upload yet. Submit the form and a real person on our team converts your document by hand, then sends back the Paragraphs and the CKEditor 5 HTML so you can compare both. Most requests get a response within one business day. A 40-page scanned archive takes longer, and we'll tell you why before we start.

No account. No credit card. No obligation to buy anything after you see the result.

Request a Conversion

Send us a PDF or a link to one. We'll show you the converted page before anything publishes.

Preferred Output

We respond within 1 business day. No account or credit card needed.

Free Tool

See Your Agency's PDF Risk in 2 Minutes

Enter your government website URL. We crawl every page, scan every PDF, and deliver a full ADA compliance risk report. No account. No credit card.

Run Free Audit

Talk to Someone Who Speaks Government

Our team understands government procurement, ADA compliance timelines, and what it takes to migrate a government website. Free 20-minute demo. No hard sell.

  • Full platform walkthrough for your agency type
  • Answers to procurement and security questions
  • Honest timeline and migration assessment
Schedule a Free Demo