PHPackages                             soderlind/read-offline - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. soderlind/read-offline

ActiveProject[PDF &amp; Document Generation](/categories/documents)

soderlind/read-offline
======================

Export WordPress posts and pages to PDF and EPUB

2.3.1(3mo ago)33410[1 issues](https://github.com/soderlind/read-offline/issues)GPL-2.0-or-laterPHPPHP &gt;=8.3

Since Jul 22Pushed 3mo ago5 watchersCompare

[ Source](https://github.com/soderlind/read-offline)[ Packagist](https://packagist.org/packages/soderlind/read-offline)[ Fund](https://paypal.me/PerSoderlind)[ RSS](/packages/soderlind-read-offline/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (6)Dependencies (3)Versions (54)Used By (0)

📚 Read Offline - Transform Your WordPress Content
=================================================

[](#-read-offline---transform-your-wordpress-content)

**Turn any WordPress post or page into beautiful, portable documents in seconds.**

Create professional **PDF**, **EPUB**, and **Markdown** files from your WordPress content with one click. Perfect for bloggers, content creators, businesses, and anyone who wants to share their content offline or across different platforms.

✨ **Lightning fast** • 🔒 **Privacy-first** • 🎨 **Beautifully formatted** • 🔧 **Developer-friendly**

[![](assets/bulk-export.png)](assets/bulk-export.png)

🚀 Why Choose Read Offline?
--------------------------

[](#-why-choose-read-offline)

### 📄 **Professional PDF Export**

[](#-professional-pdf-export)

- **Beautiful table of contents** with automatic page numbers
- **Custom branding** with headers, footers, and watermarks
- **Responsive layouts** that look great on any device
- **Multi-post exports** - combine articles into comprehensive guides

### 📖 **Publishing-Ready EPUB**

[](#-publishing-ready-epub)

- **Industry-standard format** compatible with all e-readers
- **Custom cover images** and professional metadata
- **Multiple styling options** - light, dark, or completely custom
- **Validation tools** to ensure perfect compatibility

### ⚡ **Lightning-Fast Performance**

[](#-lightning-fast-performance)

- **Smart caching** - exports are generated once, served instantly
- **Bulk operations** - export dozens of posts at once
- **Background processing** - no waiting around for large exports

### 🔒 **Privacy &amp; Security First**

[](#-privacy--security-first)

- **No tracking or telemetry** - your content stays private
- **Local processing** - files generated on your server
- **Rate limiting** to prevent abuse
- **Secure access controls** with optional public sharing

🎯 Perfect For
-------------

[](#-perfect-for)

- **📝 Bloggers** - Share your posts as professional PDFs or e-books
- **🏢 Businesses** - Create branded reports and documentation
- **👩‍🏫 Educators** - Distribute course materials and reading lists
- **📚 Authors** - Convert blog series into publishable e-books
- **💼 Agencies** - Deliver client reports in multiple formats
- **🔧 Developers** - Export content for static sites or migration

⚡ Quick Start (3 Simple Steps)
------------------------------

[](#-quick-start-3-simple-steps)

### 1. **Install &amp; Activate**

[](#1-install--activate)

- **Quick Install**

    - Download [`read-offline.zip`](https://github.com/soderlind/read-offline/releases/latest/download/read-offline.zip)
    - Upload via Plugins &gt; Add New &gt; Upload Plugin
    - Activate the plugin.
- **Updates**

    - Plugin [updates are handled automatically](https://github.com/soderlind/wordpress-plugin-github-updater#readme) via GitHub. No need to manually download and install updates.

### 2. **Configure Your Preferences**

[](#2-configure-your-preferences)

Visit *Settings → Read Offline* to choose your default formats and customize appearance.

[![](assets/back-end.png)](assets/back-end.png)

### 3. **Start Exporting**

[](#3-start-exporting)

Add the export button to any post automatically, or use the `[read_offline]` shortcode anywhere.

[![](assets/front-end.png)](assets/front-end.png)

🛠️ Advanced Features
--------------------

[](#️-advanced-features)

### 📦 **Bulk Export Magic**

[](#-bulk-export-magic)

Select multiple posts and pages from your admin area and export them as:

- **Single combined document** - Perfect for creating comprehensive guides
- **ZIP archive** - Individual files for easy distribution
- **Custom filename patterns** - Organize your exports automatically

[![](assets/bulk-export.png)](assets/bulk-export.png)

### 🎨 **Customization Options**

[](#-customization-options)

- **PDF Styling**: Custom margins, headers, footers, and watermarks
- **EPUB Themes**: Light, dark, or completely custom CSS
- **Brand Integration**: Add your logo and company information
- **Table of Contents**: Automatic generation with smart formatting

### 🔌 **Developer Friendly**

[](#-developer-friendly)

- **REST API** for programmatic access: `GET /wp-json/read-offline/v1/export`
- **50+ hooks and filters** for complete customization ([see HOOKS.md](HOOKS.md))
- **Smart caching** for optimal performance
- **Markdown export** for static site generators

*For developers: Run `composer install` to update vendors or access testing tools.*

💻 System Requirements
---------------------

[](#-system-requirements)

- ✅ **WordPress 6.8+**
- ✅ **PHP 8.3+**
- ✅ **Zip extension** (for bulk exports)
- ✅ **Tested up to WordPress 6.9**

*All required libraries are bundled - no additional setup needed!*

❓ Common Questions
------------------

[](#-common-questions)

**Question****Answer****How do I add the export button to my posts?**Go to *Settings → Read Offline* and enable auto-insertion, or use the `[read_offline]` shortcode anywhere.**Can I customize the PDF styling?**Yes! Adjust margins, headers, footers, fonts, and colors in the PDF settings section.**Are exports cached for performance?**Absolutely! Files are cached until content or settings change, ensuring lightning-fast repeat downloads.**Can visitors download without logging in?**Only if you enable public REST access in settings. By default, only logged-in users can export.**How do I export multiple posts at once?**Select posts in your admin area, choose a "Read Offline" bulk action, and apply.🛡️ Privacy &amp; Security
-------------------------

[](#️-privacy--security)

- **🔒 Zero telemetry** - Your content never leaves your server
- **🚫 No external dependencies** - All processing happens locally
- **⚡ Rate limiting** - Built-in protection against abuse
- **🔐 Access controls** - Public downloads disabled by default

📋 What's New in 2.x
-------------------

[](#-whats-new-in-2x)

- ✨ **Improved PDF TOCs** with hierarchical structure and page numbers
- 🔒 **Enhanced security** with nonce-based access for non-public mode
- 📊 **Integrity headers** for download verification (Content-Length, checksums)
- 🔧 **EPUB validation** with external epubcheck integration support
- 📱 **Responsive admin UI** with better mobile experience

🆘 Need Help?
------------

[](#-need-help)

**Quick Fixes:**

- **Missing export buttons?** Check if formats are enabled in Settings → Read Offline
- **PDF missing page numbers?** Enable page numbering in PDF settings
- **Getting ZIP instead of combined file?** Make sure "Combine bulk exports" is turned on
- **Stale content in exports?** Use the "Clear Cache" button in settings

**Still stuck?** Check out the detailed [HOOKS.md](HOOKS.md) for developer documentation or open an issue on GitHub.

📄 License &amp; Credits
-----------------------

[](#-license--credits)

- **License:** GPLv2 or later
- **PDF Engine:** Powered by mPDF
- **EPUB Engine:** Powered by PHPePub

---

**Ready to transform your WordPress content?** Install Read Offline today and start creating beautiful documents in seconds.

*For complete technical details, see [`readme.txt`](readme.txt), [`CHANGELOG.md`](CHANGELOG.md), and [`HOOKS.md`](HOOKS.md).*

###  Health Score

55

—

FairBetter than 98% of packages

Maintenance82

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity92

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~85 days

Recently: every ~43 days

Total

42

Last Release

90d ago

Major Versions

0.9.17 → 2.2.42025-08-25

PHP version history (4 changes)0.4.0PHP &gt;=5.3.0

0.8.1PHP ~7.3

2.2.4PHP &gt;=8.2

2.3.1PHP &gt;=8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1649452?v=4)[Per Søderlind](/maintainers/soderlind)[@soderlind](https://github.com/soderlind)

---

Top Contributors

[![soderlind](https://avatars.githubusercontent.com/u/1649452?v=4)](https://github.com/soderlind "soderlind (10 commits)")

---

Tags

epubmarkdownpdfwordpress-plugin

### Embed Badge

![Health badge](/badges/soderlind-read-offline/health.svg)

```
[![Health](https://phpackages.com/badges/soderlind-read-offline/health.svg)](https://phpackages.com/packages/soderlind-read-offline)
```

###  Alternatives

[carlos-meneses/laravel-mpdf

Laravel Mpdf: Using Mpdf in Laravel to generate Pdfs.

4403.1M7](/packages/carlos-meneses-laravel-mpdf)[kartik-v/yii2-mpdf

A Yii2 wrapper component for the mPDF library which generates PDF files from UTF-8 encoded HTML.

1605.5M84](/packages/kartik-v-yii2-mpdf)[contributte/pdf

Pdf response extension for Nette Framework

43967.8k2](/packages/contributte-pdf)[robregonm/yii2-pdf

Yii 2 PDF Response Formatter

4647.5k1](/packages/robregonm-yii2-pdf)[jkuchar/pdfresponse

PdfResponse is wrapper of mPDF for Nette.

10329.4k](/packages/jkuchar-pdfresponse)[famelo/pdf

Provides a quick and simple way to generate a PDF from a Fluid Template through the MPDF library

1872.8k](/packages/famelo-pdf)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
