mirror of
https://github.com/NohamR/pdfy.git
synced 2026-10-11 02:39:58 +00:00
13c9bcbcd2402d6b7bcb5481345c0458c5e872f4
pdfy
Convert web articles to PDF using the Reader View Chrome extension and headless Chrome (Puppeteer).
Features
- Extracts article content via Mozilla Readability
- Renders using Reader View for clean typography
- Supports all Reader View themes:
light,dark,sepia,groove-dark,solarized-light,solarized-dark,nord-light,nord-dark - Custom CSS injection
- Syntax highlighting via highlight.js
- Automatic reading time estimation
- Configurable extension preferences
Installation
npm install
Extract the Reader View extension (get it using CRX Downloader):
mkdir -p extension/reader-view
unzip extension/Reader-View-Chrome-Web-Store.zip -d extension/reader-view
Usage
node src/index.js --help
Usage: pdfy [options] <url>
Arguments:
url URL of the article to convert
Options:
-t, --theme <theme> Reader View theme (light, dark, sepia, groove-dark, solarized-light, solarized-dark, nord-light, nord-dark)
-c, --css <path> path to custom CSS file
-p, --prefs <path> path to extension preferences JSON
-o, --output <path> output file path (default: ./output/<title>.pdf)
-h, --help display help for command
Examples
node src/index.js https://example.com/article
node src/index.js https://example.com/article --theme dark --css config/rules.css
node src/index.js https://example.com/article --prefs config/reader-view-preferences.json
npm start -- https://example.com/article --theme dark --css config/rules.css
Running tests
npm test
The test script reads URLs from src/test/test.txt and runs multiple scenarios (default, dark, sepia, custom CSS, etc.).
Credits
- Reader View Chrome extension
- Mozilla Readability
- Puppeteer
- highlight.js
Description
Languages
JavaScript
97.7%
Dockerfile
2.3%