Printable PDF Newspaper

Description

Generates a printable PDF newspaper from post content. Great for distributing your articles and posts in a print format for offline audiences.

To use, from the admin area of your site, select what content you want to include (supports posts, pages or custom post types and you can filter by tag or category), how many items, whether to truncate the body content (or excerpt) at a certain character length, how many columns to format with, and which fields to display. You can even upload a “masthead” header image for a more authentic newspaper feel, and the plugin can automatically generate QR codes to allow link scanning with a mobile phone camera.

Download the resulting PDF or save it to your media library for easy public linking and sharing.

This plugin does not require any remote PDF generation services or subscriptions to create the printable PDF file, everything is done within the plugin itself.

Credit to TCPDF for the PDF generation library and Freepik for the plugin icon.

Contributing

Feature suggestions, bug reports and pull requests on GitHub are welcome.

Screenshots

  • Example generated PDF file.
  • Admin PDF configuration screen.

Installation

Printable PDF Newspaper is most easily installed via the Plugins tab in your admin dashboard.

FAQ

How can I customize the PDF content styles?

You can customize the PDF newspaper layout and styles using limited CSS definitions, in two different ways:

  1. Enter your custom style definitions in the “Custom CSS” input field when generating the PDF.
  2. In your theme, filter the output of ppn_pdf_template_css_file_path to specify the full filesystem path to a file containing CSS styles.

When specifying custom styles, do not enclose them in a <style> tag or any other HTML. Invalid CSS may break the PDF generation process.

Here are the CSS classes you may wish to adjust:

  • ppn-article-title: Headlines / post titles
  • ppn-article-wrapper: Wrapper around the loop of all included articles
  • ppn-author: Author byline and display name (if included)
  • ppn-date: Article date (if included)
  • ppn-content and ppn-excerpt: article body content
  • ppn-permalink-text: the “Continue Reading” permalink introductory text
  • ppn-permalink-qr-code-image: image class for the QR Code (if included)
  • ppn-article-bottom-border: horizontal line dividing articles

You can view the default style definitions in the plugin file assets/admin/css/pdf-template-styles.css or in Trac.

Note that TCPDF only supports a limited subset of the full CSS specification. Also note that any fonts referenced must be available in the TCPDF library used to generate the PDF. You can view the TCPDF core font list.
There’s also an experimental filter, ppn_font_file_paths, that allows you to add to or change the array of TTF font file paths being loaded.

Currently the header image size/position and subheading styles are not easily customizable, but will be in the future.

What filters and hooks are available?

These filters are available to further customize the plugin functionality:

  • ppn_post_query_args: override the array of arguments to WP_Query to control which posts are included
  • ppn_pdf_configuration: override the array of PDF configuration values specified by the admin user
  • ppn_pdf_template_css_file_path: override the full filesystem path to a CSS file for PDF content styling
  • ppn_font_file_paths: override the array of filesystem paths to TTF font files to include in the PDF

For example, to customize the number of posts included in the PDF, add something like this to your theme:

add_filter( 'ppn_pdf_configuration', function( $config ) { $config['number'] = 2; return $config; }, 10, 1 );

What features will be added in the future?

  • Allow saving of PDF configuration for easy re-use in future runs
  • More customizable header size and layout
  • Generate QR Codes within the plugin instead of Google Chart API
  • Ability to auto-generate the PDF on a schedule
  • Better controls for limiting number of pages generated and column breaks.

Why would anyone print anything?

Some people still encounter things and ideas through engagement with objects in the physical world. If you are looking to attract readers to your WordPress-powered writing, distributing a printed “teaser” version might just help.

Reviews

desember 10, 2021 1 reply
I Love your work! – i’ve added a polish translation for you 🙂 Waiting for styling options (i have problems with polish national characters)
oktober 12, 2019 1 reply
Nice tool to print the complete blog or parts of the blog filtered by catogories or sites. But headlines lower than h1 have the same font size like the font size of the textbody. It’s very helpful to print out some blog posts together. I use footnotes plug-in. The footnote are printed inline with shortcodes (()) and not at the bottom of a page or at the end of a post with footnote marks.
Read all 4 reviews

Contributors & Developers

“Printable PDF Newspaper” is open source software. The following people have contributed to this plugin.

Contributors

“Printable PDF Newspaper” has been translated into 6 locales. Thank you to the translators for their contributions.

Translate “Printable PDF Newspaper” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.1.2

  • Enhancement: initial support for RTL text
  • Maintenance: Tested against WordPress 5.9

1.1.1

  • Tested against WordPress 5.7
  • Fix: display more useful error message when TCPDF cannot retrieve post images

1.1.0

  • Feature: users can specify custom CSS to control PDF appearance
  • Feature: add WordPress filters so developers can customize functionality
  • Maintenance: upgrade Select2 Javascript library
  • Maintenance: improve internationalization in Javascript UI elements
  • Maintenance: other minor improvements for code standards

1.0.2

  • Maintenance: Tested against WordPress 5.4
  • Maintenance: Updated TCPDF library to latest release

1.0.1

  • Tested against WordPress 5.3
  • Fix: address minor PHP index warning with empty check

1.0.0

  • Initial release.