Title: PufferPDF
Author: senols
Published: <strong>August 18, 2026</strong>
Last modified: August 18, 2026

---

Search plugins

![](https://ps.w.org/pufferpdf/assets/banner-772x250.png?rev=3652954)

![](https://ps.w.org/pufferpdf/assets/icon-256x256.png?rev=3652954)

# PufferPDF

 By [senols](https://profiles.wordpress.org/senols/)

[Download](https://downloads.wordpress.org/plugin/pufferpdf.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/pufferpdf/#description)
 * [Reviews](https://wordpress.org/plugins/pufferpdf/#reviews)
 *  [Installation](https://wordpress.org/plugins/pufferpdf/#installation)
 * [Development](https://wordpress.org/plugins/pufferpdf/#developers)

 [Support](https://wordpress.org/support/plugin/pufferpdf/)

## Description

PufferPDF classifies and converts a PDF in your browser. It reports document type,
page count, classification confidence, pages that need OCR, and encoding warnings
before you decide whether to create a WordPress draft.

The current release supports one PDF at a time and focuses on native-text documents.
It can:

 * Extract structured Markdown in your browser with WebAssembly.
 * Reconstruct headings, paragraphs, lists, tables, and page dividers.
 * Preview, copy, or download the generated Markdown.
 * Identify scanned, image-based, mixed, and encoding-problem documents.
 * Create a draft post made from native Gutenberg blocks.
 * Select an existing PDF from the Media Library without creating a duplicate.
 * Detect current, changed, and unverified attachment sources with SHA-256 hashes.
 * Store metadata-only conversion records linked to the target draft.
 * Safely reprocess the same attachment while protecting revisions and editorial
   changes.
 * Preview and split a reviewed document into multiple posts or pages by heading
   level.
 * Map draft or pending output to capability-checked authors, parents, taxonomies,
   and terms.
 * Add exact-page citations, stored table-of-contents data, and an accessible HTML
   companion.
 * Create an atomic publication report and safely undo an unchanged batch to Trash.
 * Preserve nested lists, escaped and blank table cells, whitespace-sensitive code,
   hyperlinks, two-column reading order, and CJK/RTL text through the owned fidelity
   corpus.
 * Retry encrypted PDFs with an ephemeral password that is never persisted or sent
   to WordPress.

PufferPDF does not perform OCR in this release. A mixed document may be imported
only after acknowledging that pages requiring OCR may be absent. Fully scanned or
image-based PDFs cannot be imported until an OCR workflow is available.

#### Privacy

The selected PDF is read by a Web Worker in the administrator’s browser. A PDF chosen
with the file picker is not uploaded by this workflow. A Media Library selection
fetches the existing attachment without creating another copy. When the user explicitly
creates or updates a draft, the reviewed Gutenberg block content, title, source 
hash, and bounded inspection metadata are sent to their own WordPress site.

For Media Library files stored on the WordPress server, WordPress independently 
hashes the backing file to detect source changes. Offloaded files remain marked 
unverified when WordPress cannot read a server-readable copy. Conversion records
never contain PDF bytes.

PufferPDF does not use an external service in this release.

Deactivating PufferPDF leaves generated posts, source PDFs, conversion records, 
publication manifests, and PufferPDF metadata in place so reactivation does not 
break provenance or safe undo checks. Deleting the plugin through WordPress removes
only its hidden conversion records, hidden publication manifests, and `_pufferpdf_*`
metadata. Generated posts, pages, revisions, taxonomy terms, and source PDF attachments
remain under the site’s control.

Learn more about the workflow at [pufferpdf.com](https://pufferpdf.com/).

#### Third-party software

PufferPDF includes a reviewed browser WebAssembly runtime. Third-party attribution,
upstream source details, redistribution notices, license texts, provenance checksums,
and exact rebuild instructions are consolidated in `THIRD_PARTY_NOTICES.txt` and
the files it references.

## Screenshots

[⌊Choose a PDF from your computer or Media Library, then set the conversion profile.⌉⌊
Choose a PDF from your computer or Media Library, then set the conversion profile
.⌉[

Choose a PDF from your computer or Media Library, then set the conversion profile.

[⌊Review document type, page count, warnings, headings, tables, lists, code, and
links before creating content.⌉⌊Review document type, page count, warnings, headings,
tables, lists, code, and links before creating content.⌉[

Review document type, page count, warnings, headings, tables, lists, code, and links
before creating content.

[⌊Preview a validated publishing plan with heading splits, destinations, citations,
and an optional accessible companion.⌉⌊Preview a validated publishing plan with 
heading splits, destinations, citations, and an optional accessible companion.⌉[

Preview a validated publishing plan with heading splits, destinations, citations,
and an optional accessible companion.

[⌊Review every created draft and safely undo an unchanged publishing run without
removing the source PDF.⌉⌊Review every created draft and safely undo an unchanged
publishing run without removing the source PDF.⌉[

Review every created draft and safely undo an unchanged publishing run without removing
the source PDF.

[⌊Track Media Library conversions and safely reprocess only verified, unchanged 
sources.⌉⌊Track Media Library conversions and safely reprocess only verified, unchanged
sources.⌉[

Track Media Library conversions and safely reprocess only verified, unchanged sources.

[⌊Edit the generated document as native Gutenberg blocks with source citations and
the original PDF retained.⌉⌊Edit the generated document as native Gutenberg blocks
with source citations and the original PDF retained.⌉[

Edit the generated document as native Gutenberg blocks with source citations and
the original PDF retained.

## Installation

 1. Upload the `pufferpdf` folder to `/wp-content/plugins/`.
 2. Activate PufferPDF from the Plugins screen.
 3. Open Tools > PufferPDF.
 4. Choose a PDF from your computer or Media Library, review the result, and create
    a draft when ready.

## FAQ

### Does my PDF leave my browser?

PufferPDF’s conversion requests do not upload PDF bytes. Classification and extraction
run in a browser Worker. A Media Library PDF already resides on the user’s WordPress
storage and is fetched from there for browser processing. Reviewed blocks, titles,
source identity, and bounded inspection metadata are sent to the user’s own WordPress
site only when they create a draft or publication.

### Does PufferPDF perform OCR?

Not yet. It detects pages that need OCR and prevents silent imports of fully scanned
documents.

### Why is a mixed PDF marked incomplete?

The parser extracts native text only. Pages without usable text require a later 
OCR step, so importing the available text could omit content.

### What happens when I reprocess a PDF?

PufferPDF updates only the draft linked by the latest conversion record. It refuses
stale records, non-draft targets, source-hash races, and drafts edited since the
prior conversion. Identical reruns perform no write.

### Why is a Media Library PDF marked unverified?

Paginated inventory avoids hashing many files synchronously, so a converted Media
Library row remains unverified until you select it for an exact SHA-256 check. WordPress
also cannot independently hash a file that is unavailable on its server filesystem.
The browser can still process an offloaded file when the media host permits HTTPS
CORS access from wp-admin, but PufferPDF does not label that source current without
server verification.

Reversible multi-post publishing requires WordPress to verify the Media Library 
file independently. An offloaded attachment without server-readable bytes can still
be downloaded and selected through the independent file-picker workflow.

### Which browsers are supported?

PufferPDF supports current desktop versions of Chrome, Edge, Firefox, and Safari.
Conversion requires Web Workers, WebAssembly, the File API, and SHA-256 support 
through Web Crypto. If the browser or site context does not provide those capabilities,
PufferPDF stops before conversion and explains what is missing.

### What happens when I deactivate or delete PufferPDF?

Deactivation preserves all data. Deleting the plugin removes its hidden conversion
records, publication manifests, and private PufferPDF metadata. It does not delete
generated posts or pages, their revisions, taxonomy terms, or source PDF attachments.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“PufferPDF” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ senols ](https://profiles.wordpress.org/senols/)

[Translate “PufferPDF” into your language.](https://translate.wordpress.org/projects/wp-plugins/pufferpdf)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/pufferpdf/), check 
out the [SVN repository](https://plugins.svn.wordpress.org/pufferpdf/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/pufferpdf/) by [RSS](https://plugins.trac.wordpress.org/log/pufferpdf/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1

 * Initial public release.
 * Converts native-text PDFs in the browser into reviewed Markdown and native Gutenberg
   blocks without an external processing service.
 * Selects PDFs from your computer or Media Library and detects current, changed,
   or unverified attachment sources.
 * Safely reprocesses linked drafts with source-hash, revision, and editorial-change
   protection.
 * Previews heading-based single- or multi-post publishing plans with capability-
   aware destinations, citations, table-of-contents data, and optional accessible
   HTML companions.
 * Creates and reports approved batches atomically, supports idempotent replay, 
   and moves unchanged batches to Trash through a fail-closed undo workflow.
 * Preserves nested lists, tables, code, safe links, two-column reading order, and
   CJK/RTL text through the bundled reproducible parser build.
 * Handles encrypted and recoverable malformed PDFs with bounded, sanitized failures;
   fully scanned PDFs remain explicitly unsupported until a later OCR workflow.

## Meta

 *  Version **1.0.1**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [markdown](https://wordpress.org/plugins/tags/markdown/)[pdf](https://wordpress.org/plugins/tags/pdf/)
   [pdf converter](https://wordpress.org/plugins/tags/pdf-converter/)[pdf importer](https://wordpress.org/plugins/tags/pdf-importer/)
   [pdf to post](https://wordpress.org/plugins/tags/pdf-to-post/)
 *  [Advanced View](https://wordpress.org/plugins/pufferpdf/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/pufferpdf/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pufferpdf/reviews/)

## Contributors

 *   [ senols ](https://profiles.wordpress.org/senols/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pufferpdf/)