{"id":383352,"date":"2026-10-11T09:48:49","date_gmt":"2026-10-11T09:48:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/chronition-print-pdf\/"},"modified":"2026-10-11T09:48:27","modified_gmt":"2026-10-11T09:48:27","slug":"chronition-print-pdf","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/chronition-print-pdf\/","author":23581838,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"1.5.0","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Chronition Print & PDF","header_author":"Brajabandhu Mahanta","header_description":"Elegant Print and Download PDF buttons for posts, pages and custom post types. Clean print layouts, server-side PDF generation with caching, Indic-script aware fallback, watermarks, page numbers and full design control.","assets_banners_color":"737b95","last_updated":"2026-10-11 09:48:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/chronition.co.in","rating":0,"author_block_rating":0,"active_installs":0,"downloads":41,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.0":{"tag":"1.5.0","author":"brajabandhu","date":"2026-10-11 09:48:27","revision":3739257}},"upgrade_notice":{"1.5.0":"<p>Adds developer hooks used by add-ons. No changes to existing settings.<\/p>","1.4.1":"<p>Updated PDF library. The Custom CSS setting was removed \u2014 move any custom rules to Appearance \u2192 Customize \u2192 Additional CSS.<\/p>","1.4.0":"<p>The shortcode is now [cwpp_buttons]. Downloading fonts from Google Fonts is now opt-in; re-enable it under Advanced if you used it.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3739257,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3739257,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3739257,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3739257,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3739257,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3739257,"resolution":"2","location":"assets","locale":"","width":1006,"height":1383},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3739257,"resolution":"3","location":"assets","locale":"","width":1006,"height":1383},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3739257,"resolution":"4","location":"assets","locale":"","width":1006,"height":1383},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3739257,"resolution":"5","location":"assets","locale":"","width":1240,"height":760}},"screenshots":{"1":"Print and Download PDF buttons on a post.","2":"A generated PDF in the site's colours and fonts.","3":"Table of contents on its own page, with page numbers.","4":"Wide tables fitted to the page width.","5":"Settings, with live button preview and detected theme colours."}},"plugin_section":[],"plugin_tags":[285742,1764,3153,35369,66418],"plugin_category":[50],"plugin_contributors":[285743],"plugin_business_model":[],"class_list":["post-383352","plugin","type-plugin","status-publish","hentry","plugin_tags-download-pdf","plugin_tags-pdf","plugin_tags-print","plugin_tags-print-button","plugin_tags-save-as-pdf","plugin_category-media","plugin_contributors-brajabandhu","plugin_committers-brajabandhu"],"banners":{"banner":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/banner-772x250.png?rev=3739257","banner_2x":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/banner-1544x500.png?rev=3739257","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/icon-128x128.png?rev=3739257","icon_2x":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/icon-256x256.png?rev=3739257","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/screenshot-1.png?rev=3739257","caption":"Print and Download PDF buttons on a post."},{"src":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/screenshot-2.png?rev=3739257","caption":"A generated PDF in the site's colours and fonts."},{"src":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/screenshot-3.png?rev=3739257","caption":"Table of contents on its own page, with page numbers."},{"src":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/screenshot-4.png?rev=3739257","caption":"Wide tables fitted to the page width."},{"src":"https:\/\/ps.w.org\/chronition-print-pdf\/assets\/screenshot-5.png?rev=3739257","caption":"Settings, with live button preview and detected theme colours."}],"raw_content":"<!--section=description-->\n<p>Chronition Print &amp; PDF adds \"Print\" and \"Download PDF\" buttons to your posts, pages and custom post types. Visitors get a clean, readable document without your theme's menus, sidebars, ads or share bars.<\/p>\n\n<p>PDFs are generated on your own server by the bundled Dompdf library. No account and no third-party PDF service are needed.<\/p>\n\n<h4>Highlights<\/h4>\n\n<ul>\n<li><strong>Real PDF files<\/strong> with selectable text, document title and author metadata, page numbers and caching.<\/li>\n<li><strong>Matches your website.<\/strong> Brand colour, text colours and fonts are detected from your theme (block themes, the Site Editor and popular classic themes such as Astra, GeneratePress, Kadence, OceanWP, Neve, Blocksy and Divi).<\/li>\n<li><strong>Table of contents<\/strong> on its own page, sized to fit one page, with numbered chapters and real page numbers in PDFs. Existing tables of contents (including JavaScript-built ones) are kept and repaired.<\/li>\n<li><strong>Tables that fit the page.<\/strong> Fixed widths are removed, wide tables get a compact layout and header rows stay with their data.<\/li>\n<li><strong>All languages.<\/strong> Posts in Odia, Hindi, Bengali, Tamil, Arabic, Chinese and other complex scripts automatically use the browser's \"Save as PDF\", which shapes those scripts correctly.<\/li>\n<li><strong>Print without leaving the page<\/strong> on desktop, with a dedicated print view on mobile.<\/li>\n<li><strong>Five button styles<\/strong> (Soft, Solid, Pill, Outline, Minimal), three sizes, icon-only mode and custom labels, with a live preview.<\/li>\n<li><strong>Document options:<\/strong> paper size and orientation, typography, logo or site name, author, date and reading time, featured image, categories and tags, source link, running header and footer, and an optional watermark.<\/li>\n<li><strong>Control where buttons appear:<\/strong> choose post types, hide on the front page, exclude by ID, or hide per post from the editor.<\/li>\n<li><strong>Privacy-aware:<\/strong> private, draft and password-protected content is never exposed.<\/li>\n<li><strong>For developers:<\/strong> shortcode, template tag, theme-overridable template and filters.<\/li>\n<\/ul>\n\n<h4>Pro add-on<\/h4>\n\n<p>Everything above is free and fully functional. An optional, separately sold add-on, Chronition Print &amp; PDF Pro, adds cover pages, multi-post eBooks, image watermarks, header and footer layouts, password-protected PDFs, lead-capture and members-only downloads, download statistics, custom font uploads and QR codes. It is not needed to use this plugin.<\/p>\n\n<h3>Usage<\/h3>\n\n<p>Buttons are added automatically above the content. To place them yourself, set <strong>Placement<\/strong> to \"Manual only\" and use:<\/p>\n\n<p>Shortcode:<\/p>\n\n<pre><code>[cwpp_buttons]\n[cwpp_buttons pdf=\"no\"]\n[cwpp_buttons id=\"42\" align=\"center\" style=\"solid\"]\n[cwpp_buttons print_label=\"Print article\" pdf_label=\"Save PDF\"]\n<\/code><\/pre>\n\n<p>Template tag:<\/p>\n\n<pre><code>&lt;?php if ( function_exists( 'cwpp_buttons' ) ) { cwpp_buttons(); } ?&gt;\n<\/code><\/pre>\n\n<p>Direct links: add <code>?cwpp=print<\/code> or <code>?cwpp=pdf<\/code> to the address of any enabled post. Add <code>&amp;view=1<\/code> to open the PDF in the browser instead of downloading it.<\/p>\n\n<p>Custom template: copy <code>templates\/document.php<\/code> from the plugin to <code>your-theme\/chronition-print-pdf\/document.php<\/code>.<\/p>\n\n<p>Filters: <code>cwpp_is_enabled<\/code>, <code>cwpp_engine<\/code>, <code>cwpp_document_data<\/code>, <code>cwpp_document_css<\/code>, <code>cwpp_design_tokens<\/code>, <code>cwpp_template<\/code>, <code>cwpp_filename<\/code>, <code>cwpp_buttons_html<\/code>, <code>cwpp_dompdf_options<\/code>, <code>cwpp_document_hash_data<\/code>, <code>cwpp_settings_tabs<\/code>.<\/p>\n\n<p>Actions: <code>cwpp_document_before_sheet<\/code>, <code>cwpp_document_sheet_end<\/code>, <code>cwpp_document_after_sheet<\/code>, <code>cwpp_pdf_rendered<\/code>, <code>cwpp_before_serve<\/code>, <code>cwpp_pdf_served<\/code>, <code>cwpp_settings_panels<\/code>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not contact any external service by default.<\/p>\n\n<p><strong>Google Fonts (optional, off by default).<\/strong> If you turn on <strong>Settings \u2192 Print &amp; PDF \u2192 Advanced \u2192 Theme fonts<\/strong>, and your theme's fonts are only available in WOFF2 format, your server requests TrueType versions of those fonts from Google Fonts so they can be embedded in PDFs.<\/p>\n\n<ul>\n<li>What is sent: the font family name (for example \"Manrope\") in a request to <code>fonts.googleapis.com<\/code>, and requests for the font files to <code>fonts.gstatic.com<\/code>. Like any web request, this includes your server's IP address. No information about your visitors or your content is sent.<\/li>\n<li>When: once per font family, the first time a PDF is generated after the option is enabled. The files are then cached on your server. Visitors never connect to Google.<\/li>\n<li>Google Fonts terms of service: https:\/\/developers.google.com\/fonts\/terms<\/li>\n<li>Google privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>Images hosted on other websites (optional, off by default).<\/strong> If you turn on <strong>Advanced \u2192 Images \u2192 Allow images hosted on other domains<\/strong>, your server downloads images that your posts embed from other websites so they can be included in PDFs. Only the image URLs in your own content are requested.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>PDF generation by <a href=\"https:\/\/github.com\/dompdf\/dompdf\">Dompdf<\/a> (LGPL-2.1) with php-font-lib and php-svg-lib (LGPL), php-css-parser (MIT) and html5-php (MIT), bundled in <code>lib\/dompdf<\/code>. DejaVu fonts are included under the Bitstream Vera \/ DejaVu licence.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your dashboard go to <strong>Plugins \u2192 Add New<\/strong>, search for \"Chronition Print &amp; PDF\", then install and activate it.<\/li>\n<li>Go to <strong>Settings \u2192 Print &amp; PDF<\/strong> to choose where the buttons appear and how documents look.<\/li>\n<\/ol>\n\n<p>Manual installation: upload the <code>chronition-print-pdf<\/code> folder to <code>\/wp-content\/plugins\/<\/code> and activate it from the Plugins screen.<\/p>\n\n<p>The server-side PDF engine needs the PHP <code>dom<\/code> and <code>mbstring<\/code> extensions, which almost every host provides. Without them, visitors use their browser's \"Save as PDF\" instead.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20my%20language%3F\"><h3>Does it work with my language?<\/h3><\/dt>\n<dd><p>Yes. English and European languages download as a PDF file made on your server. Posts written in complex scripts (Odia, Hindi, Bengali, Tamil, Arabic, Chinese and others) open the print view instead, where the visitor chooses \"Save as PDF\". Browsers shape these scripts correctly; server PDF libraries cannot.<\/p><\/dd>\n<dt id=\"why%20are%20my%20theme%27s%20fonts%20not%20used%20in%20the%20pdf%3F\"><h3>Why are my theme's fonts not used in the PDF?<\/h3><\/dt>\n<dd><p>PDFs can embed TTF, OTF and WOFF fonts. Many themes only ship WOFF2 fonts, which cannot be embedded. You can turn on <strong>Settings \u2192 Print &amp; PDF \u2192 Advanced \u2192 Theme fonts<\/strong> to download TrueType copies from Google Fonts (see \"External services\" below). Otherwise the closest serif or sans-serif font is used. The print view always uses your theme's fonts.<\/p><\/dd>\n<dt id=\"how%20do%20i%20hide%20the%20buttons%20on%20a%20page%3F\"><h3>How do I hide the buttons on a page?<\/h3><\/dt>\n<dd><p>Use the \"Hide Print &amp; PDF on this item\" box in the editor sidebar, add the ID under <strong>Exclude IDs<\/strong>, or turn off the post type. The front page is hidden by default.<\/p><\/dd>\n<dt id=\"where%20are%20pdfs%20stored%3F\"><h3>Where are PDFs stored?<\/h3><\/dt>\n<dd><p>Generated PDFs and downloaded fonts are cached in <code>wp-content\/uploads\/cwpp-cache\/<\/code>, which is protected from direct access. The cache is rebuilt automatically when a post, your theme or the settings change. You can clear it under <strong>Advanced<\/strong>. Everything is removed when you delete the plugin.<\/p><\/dd>\n<dt id=\"does%20it%20add%20any%20links%20or%20credits%20to%20my%20site%3F\"><h3>Does it add any links or credits to my site?<\/h3><\/dt>\n<dd><p>No. Nothing is added to your pages or documents except the buttons and the content you choose.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>New developer hooks: actions before and after the document sheet, after a PDF is laid out (<code>cwpp_pdf_rendered<\/code>), before a document is served and when a PDF is sent, plus filters for the cache key and extra settings tabs.<\/li>\n<li>New: <code>CWPP_Renderer::pdf_from_html()<\/code> turns any document HTML into a PDF with the plugin's settings, table of contents page numbers and watermark.<\/li>\n<li>Added a \"Go Pro\" link on the Plugins screen for the optional Pro add-on.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Updated the bundled Dompdf library to 3.1.6 (and its dependencies to their latest releases).<\/li>\n<li>Removed the \"Custom CSS\" setting; use the design options or your theme's Additional CSS instead.<\/li>\n<li>Button markup is now passed through wp_kses() after the <code>cwpp_buttons_html<\/code> filter.<\/li>\n<li>The plugin no longer defines WordPress's FS_CHMOD_* constants.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Prepared for WordPress.org: new slug <code>chronition-print-pdf<\/code>, styles and scripts output through WordPress APIs, file operations through WP_Filesystem, stricter escaping.<\/li>\n<li>Changed: the shortcode is now <code>[cwpp_buttons]<\/code>.<\/li>\n<li>Changed: downloading fonts from Google Fonts is now opt-in (off by default).<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New: \"Hide on the front page\" option (on by default), for both a static homepage and a latest-posts homepage.<\/li>\n<li>Fixed: Print and PDF links on a static front page returned \"not found\".<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: \"Match my theme\" design using the theme's brand colour, text colours and fonts.<\/li>\n<li>New: table of contents on its own page, sized to fit one page, with page numbers in PDFs.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Fixed: wide tables overflowing the page, blank pages, and missing tables of contents.<\/li>\n<li>New: table of contents setting.<\/li>\n<li>Improved: the watermark no longer mixes into copied or searched text.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Print and Download PDF buttons for posts and pages, with clean layouts that match your theme, tables that fit the page and a table of contents.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/383352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=383352"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/brajabandhu"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=383352"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=383352"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=383352"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=383352"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=383352"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=383352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}