{"id":32482,"date":"2014-10-25T18:16:56","date_gmt":"2014-10-25T18:16:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/waterwoo-pdf\/"},"modified":"2026-10-12T19:34:43","modified_gmt":"2026-10-12T19:34:43","slug":"waterwoo-pdf","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/waterwoo-pdf\/","author":23458785,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.1.6","stable_tag":"4.1.6","tested":"7.1.3","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"PDF Ink Lite","header_author":"Canyon Webworks","header_description":"","assets_banners_color":"ddd1d4","last_updated":"2026-10-12 19:34:43","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/canyonwebworks","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/waterwoo-pdf\/","header_author_uri":"https:\/\/pdfink.com\/","rating":4.6,"author_block_rating":0,"active_installs":2000,"downloads":97857,"num_ratings":51,"support_threads":3,"support_threads_resolved":3,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"4.0.10":{"tag":"4.0.10","author":"littlepackage","date":"2026-03-10 20:24:40","revision":3479518},"4.0.11":{"tag":"4.0.11","author":"littlepackage","date":"2026-03-11 17:25:07","revision":3480455},"4.0.12":{"tag":"4.0.12","author":"littlepackage","date":"2026-03-29 20:20:27","revision":3494009},"4.0.13":{"tag":"4.0.13","author":"canyonwebworks","date":"2026-08-18 00:02:58","revision":3651849},"4.0.6":{"tag":"4.0.6","author":"littlepackage","date":"2025-12-01 16:15:01","revision":3407023},"4.0.7":{"tag":"4.0.7","author":"littlepackage","date":"2025-12-02 14:53:54","revision":3408153},"4.0.8":{"tag":"4.0.8","author":"littlepackage","date":"2025-12-19 15:25:44","revision":3423791},"4.0.9":{"tag":"4.0.9","author":"littlepackage","date":"2026-01-23 19:09:52","revision":3445775},"4.1.0":{"tag":"4.1.0","author":"canyonwebworks","date":"2026-08-18 00:07:47","revision":3651850},"4.1.1":{"tag":"4.1.1","author":"canyonwebworks","date":"2026-08-18 14:40:49","revision":3653092},"4.1.2":{"tag":"4.1.2","author":"canyonwebworks","date":"2026-08-22 17:23:04","revision":3660954},"4.1.3":{"tag":"4.1.3","author":"canyonwebworks","date":"2026-09-07 15:16:41","revision":3685171},"4.1.4":{"tag":"4.1.4","author":"canyonwebworks","date":"2026-09-08 14:34:56","revision":3686840},"4.1.5":{"tag":"4.1.5","author":"canyonwebworks","date":"2026-10-07 18:24:05","revision":3733191},"4.1.6":{"tag":"4.1.6","author":"canyonwebworks","date":"2026-10-12 19:34:43","revision":3742407}},"upgrade_notice":{"4.0":"<ul>\n<li>If you have overwritten parts of this plugin or are using filter hooks, this could be a breaking update. In that case we recommend you take backups and work on a non-production server to navigate your upgrade<\/li>\n<\/ul>"},"ratings":{"1":2,"2":3,"3":1,"4":1,"5":44},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3301838,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3301832,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3301832,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["4.0.10","4.0.11","4.0.12","4.0.13","4.0.6","4.0.7","4.0.8","4.0.9","4.1.0","4.1.1","4.1.2","4.1.3","4.1.4","4.1.5","4.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3302366,"resolution":"1","location":"assets","locale":"","width":2000,"height":800},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3302516,"resolution":"2","location":"assets","locale":"","width":2000,"height":1139},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3302368,"resolution":"3","location":"assets","locale":"","width":2000,"height":877},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3479513,"resolution":"4","location":"assets","locale":"","width":1600,"height":805}},"screenshots":{"1":"Settings page screenshot, showing where to turn on the plugin and choose files.","2":"Settings page screenshot, having to do with font choices and watermark content. Shortcodes are in use and will be converted dynamically to actual customer information.","3":"Settings page screenshot, showing password and protections settings. RC4 40-bit encryption is set automatically in PDF Ink Lite if protections are selected. For higher encryption, upgrade."}},"plugin_section":[],"plugin_tags":[5346,258940,258939,257542,176758],"plugin_category":[45,50,54],"plugin_contributors":[257467,86317],"plugin_business_model":[],"class_list":["post-32482","plugin","type-plugin","status-publish","hentry","plugin_tags-digital-downloads","plugin_tags-document-protection","plugin_tags-pdf-password","plugin_tags-pdf-watermark","plugin_tags-woocommerce-pdf","plugin_category-ecommerce","plugin_category-media","plugin_category-security-and-spam-protection","plugin_contributors-canyonwebworks","plugin_contributors-littlepackage","plugin_committers-canyonwebworks","plugin_committers-littlepackage","plugin_support_reps-1ittlepackage"],"banners":{"banner":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/banner-772x250.jpg?rev=3301832","banner_2x":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/banner-1544x500.jpg?rev=3301832","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/icon.svg?rev=3301838","icon":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/icon.svg?rev=3301838","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/screenshot-1.jpg?rev=3302366","caption":"Settings page screenshot, showing where to turn on the plugin and choose files."},{"src":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/screenshot-2.jpg?rev=3302516","caption":"Settings page screenshot, having to do with font choices and watermark content. Shortcodes are in use and will be converted dynamically to actual customer information."},{"src":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/screenshot-3.jpg?rev=3302368","caption":"Settings page screenshot, showing password and protections settings. RC4 40-bit encryption is set automatically in PDF Ink Lite if protections are selected. For higher encryption, upgrade."},{"src":"https:\/\/ps.w.org\/waterwoo-pdf\/assets\/screenshot-4.jpg?rev=3479513","caption":""}],"raw_content":"<!--section=description-->\n<p>PDF Ink Lite adds a watermark and optional password protection to PDF files, including PDF ebooks, that customers download from your store.<\/p>\n\n<p>Add details like a customer\u2019s name, email, or order date to each PDF. Choose the font, color, size, and position of your watermark. PDF Ink Lite works with WooCommerce, Easy Digital Downloads, and Download Monitor.<\/p>\n\n<p>PDF Ink Lite includes the libraries it needs, so you don\u2019t have to ask your web host to install them. It also works with newer PDF files, not just older versions.<\/p>\n\n<h4>PDF Ink Lite features<\/h4>\n\n<p>PDF Ink Lite works its magic \u2728 when a customer clicks a download link. It checks the file and applies your settings. The free version allows you to:<\/p>\n\n<ul>\n<li>List which PDF downloads to watermark, or watermark all PDFs<\/li>\n<li>Choose the font, color, and size of your watermark<\/li>\n<li>Watermark text centered anywhere on the page, on every page of a PDF<\/li>\n<li>Add customer details, such as first name, last name, email, order paid date, and phone number<\/li>\n<li>Add a password and\/or limit copying and printing<\/li>\n<\/ul>\n\n<h4>Get more control with PDF Ink<\/h4>\n\n<p><a href=\"https:\/\/pdfink.com\/\" title=\"PDF Ink\">PDF Ink<\/a>, the full version of PDF Ink Lite, adds more ways to control, protect, and deliver your files.<\/p>\n\n<ul>\n<li><strong>More styling choices:<\/strong> Add your own fonts, change how see-through a watermark is, or style it with HTML<\/li>\n<li><strong>More placement options:<\/strong> Add multiple watermarks anywhere on the page, with as many positions and angles as you need<\/li>\n<li><strong>More control over pages:<\/strong> Choose specific pages, page ranges, odd pages, or even pages. Leave out a cover page if you like<\/li>\n<li><strong>Settings for each product:<\/strong> Use the same settings for every PDF, or set different watermarks and passwords for each product or product variation<\/li>\n<li><strong>More customer details:<\/strong> Add business name, address, order number, product name, and quantity purchased. Adding other types of customer details requires PHP coding<\/li>\n<li><strong>More PDF protection:<\/strong> Protect PDFs with stronger AES encryption, and more security options than the free version<\/li>\n<li><strong>More ways to work with files:<\/strong> Watermark PDFs inside ZIP files and add custom text to EPUB ebooks<\/li>\n<li><strong>More ways to share files:<\/strong> Create triggered download links with custom shortcodes, embed protected files on a page<\/li>\n<li><strong>Tools for testing:<\/strong> Preview a watermark or watermark a file from your WordPress admin panel<\/li>\n<li><strong>Extra file options:<\/strong> Keep a copy of stamped files, optionally recycle them to customers to conserve CPU, and\/or set stamped files to be deleted on a schedule.<\/li>\n<li><strong>More ways to customize:<\/strong> Use right-to-left text, HTML, and QR codes or other barcodes in watermarks<\/li>\n<li><strong>Keep outside PDF links:<\/strong> Preserve links to websites in a watermarked PDF. Internal table-of-contents links may not always work. SetaPDF-Stamper (add-on) can add support for those links.<\/li>\n<li><strong>Works beyond WordPress:<\/strong> Use PDF Ink to inline PDF manipulation on any PHP-based website\u2014not just WordPress<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/pdfink.com\/#download\" title=\"Download PDF Ink\">Get PDF Ink, the full version of PDF Ink Lite, starting at $45<\/a><\/p>\n\n<!--section=installation-->\n<h4>Minimum Requirements<\/h4>\n\n<ul>\n<li>WordPress 7.0 or newer<\/li>\n<li>WooCommerce 8.2 or newer, if you use WooCommerce<\/li>\n<li>PHP 7.4 or newer<\/li>\n<li>PDF files below version 2.0<\/li>\n<\/ul>\n\n<p>Keep WordPress and your plugins up to date<\/p>\n\n<h4>Recommended for your web host<\/h4>\n\n<ul>\n<li>WordPress Memory limit of 64 MB or greater (usually &lt;=512MB works fine)<\/li>\n<li>PHP max_execution_time up to 60 seconds (30 should be fine)<\/li>\n<li>More CPU power if you have large PDFs or many downloads<\/li>\n<li>OpenSSL<\/li>\n<\/ul>\n\n<h4>Install PDF Ink Lite<\/h4>\n\n<ol>\n<li>Upload the entire \"waterwoo-pdf\" folder to \"\/wp-content\/plugins\/\".<\/li>\n<li>In WordPress, go to Plugins and activate PDF Ink Lite<\/li>\n<li>Open the PDF Ink Lite settings:\n\n<ul>\n<li>WooCommerce: WooCommerce \u2192 Settings \u2192 PDF Ink Lite<\/li>\n<li>Easy Digital Downloads: Settings \u2192 Extensions \u2192 PDF Ink Lite<\/li>\n<li>Download Monitor: Downloads \u2192 Settings \u2192 PDF Ink Lite<\/li>\n<\/ul><\/li>\n<li>Test with a purchase before your store goes live. Check that the watermark looks right and the download works.<\/li>\n<\/ol>\n\n<h4>Remove PDF Ink Lite<\/h4>\n\n<ol>\n<li>In WordPress, go to Plugins and deactivate PDF Ink Lite<\/li>\n<li>Delete the plugin from the Plugins page<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%20can%27t%20donate%20and%20i%20cannot%20upgrade.%20how%20can%20i%20still%20support%20you%3F\"><h3>I can't donate and I cannot upgrade. How can I still support you?<\/h3><\/dt>\n<dd><p>\u00a0\nThanks for thinking of the people who make free plugins!<\/p>\n\n<p>You can add a tiny, hard-to-see link to PDF Ink on page 2 of your PDFs. In PDF Ink Lite settings, open Housekeeping and check the Attribution box.<\/p><\/dd>\n<dt id=\"where%20do%20i%20change%20pdf%20ink%20lite%20settings%3F\"><h3>Where do I change PDF Ink Lite settings?<\/h3><\/dt>\n<dd><p>\u00a0\nOn the Plugins page, click the \"Settings for XXX\" link under PDF Ink Lite.\nYou can find the PDF Ink settings page by clicking on the \"Settings for XXX\" link under the PDF Ink Lite plugin title on your WordPress plugins panel.<\/p><\/dd>\n<dt id=\"something%20is%20wrong\"><h3>Something is wrong<\/h3><\/dt>\n<dd><p>\u00a0\nTry these steps:\n\u00a0\n1. Check that WooCommerce, Easy Digital Downloads, or Download Monitor is installed, and that you have a PDF product customers can buy.\n2. In PDF Ink Lite settings, make sure \"Enable watermarking\" is checked.\n3. Turn off PDF Ink Lite and check that the original download works.\n4. Try a different PDF\u2014ideally one you did not create.\n5. Try a different font in the settings.\n6. Turn on debugging in PDF Ink Lite settings. Try again, then check the logs.\n7. If your server has low PHP memory or time limits, ask your web host whether they can increase them.\n8. If possible, ask your webhost if changing PHP version might help.\n9. If the watermark is off the page or blank pages appear, see the FAQ below: \"Why does the watermark go off the page or create blank pages?\"<\/p>\n\n<p>Still stuck? Please post in the WordPress.org support forum before leaving a review. I\u2019m happy to help.<\/p>\n\n<p><a href=\"https:\/\/wordpress.org\/support\/topic\/before-you-post-2026-support-tips-please-read\/\">Read these tips before posting in the WordPress.org support forum<\/a>.<\/p>\n\n<p>For help with PDF Ink Lite, use the WordPress.org support forum\u2014not email.<\/p>\n\n<p>For help with the paid version of PDF Ink, use the support channel provided with your purchase. Please don\u2019t ask for paid-version support in the WordPress.org forum.<\/p><\/dd>\n<dt id=\"my%20watermark%20uses%20non-english%20text.%20what%20should%20i%20do%3F\"><h3>My watermark uses non-English text. What should I do?<\/h3><\/dt>\n<dd><p>\u00a0\nTry choosing a different font in the settings, such as \"Deja Vu.\"<\/p>\n\n<p>A font may not include the special characters in your text. If none of the included fonts support your language, you\u2019ll need to add a font with PHP code or use the full version of PDF Ink, which includes more fonts and lets you upload your own.<\/p><\/dd>\n<dt id=\"how%20do%20i%20test%20my%20watermark%3F\"><h3>How do I test my watermark?<\/h3><\/dt>\n<dd><p>\u00a0\nYou can test a download by setting a product\u2019s price to $0, or by making a coupon for a free purchase. For WooCommerce, you can also set the product to \"Privately Published.\"<\/p>\n\n<p>Test the download as a customer would. If you use a coupon, keep it private.<\/p>\n\n<p>For an easier way to test a watermark without making a purchase, <a href=\"https:\/\/pdfink.com\/\" title=\"PDF Ink - full-featured version\">use the full version of PDF Ink<\/a><\/p><\/dd>\n<dt id=\"why%20does%20the%20watermark%20go%20off%20the%20page%2C%20create%20blank%20pages%3F\"><h3>Why does the watermark go off the page, create blank pages?<\/h3><\/dt>\n<dd><p>\u00a0\nThe watermark may be too large or too long for the page. Try using a smaller font or shorter text. You can also adjust the Y-axis setting to move the watermark up or down the page.<\/p>\n\n<p>The Y-axis setting is measured in millimeters. For example, an 11-inch-tall page is 279.4 mm tall, so the Y-axis value needs to be lower than that for the watermark to appear on the page. In this exampl, try a font size of 12 and Y of 260.<\/p>\n\n<p>You can use a negative Y-axis value to measure up from the bottom of the page. This can help when your PDF has pages of different sizes.<\/p><\/dd>\n<dt id=\"where%20do%20the%20watermarked%20files%20go%3F\"><h3>Where do the watermarked files go?<\/h3><\/dt>\n<dd><p>\u00a0\nWatermarked files are saved next to the original file, usually in a folder like \"wp-content\/uploads\/year\/month\/\". Each watermarked file has a unique name that includes the order number and the time it was made.<\/p>\n\n<p>If a customer can\u2019t download their file\u2014for example, because they have reached the download limit\u2014you may be able to find it there.<\/p>\n\n<p>For WooCommerce \"Force\" downloads, PDF Ink Lite tries to delete the watermarked file after the download. This may not always work.<\/p>\n\n<p>The paid version lets you choose how and when stamped files are removed, so you can keep your server clean.<\/p>\n\n<p>To turn off the cleanup attempt, use the \"wwpdf_do_cleanup\" filter hook and set it to FALSE.<\/p><\/dd>\n<dt id=\"what%20if%20watermarking%20fails%3F\"><h3>What if watermarking fails?<\/h3><\/dt>\n<dd><p>\u00a0\nYou can choose to send the original file without a watermark if watermarking fails. This code adds that setting:\n\u00a0\n    <code>add_filter( 'wwpdf_serve_unwatermarked_file', '__return_true' );<\/code>\n\u00a0\nAdd the code to your child theme\u2019s functions.php file. If you\u2019re not comfortable editing PHP files, you can use the Code Snippets plugin to add it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>4.1.6 - 12 October 2026<\/h4>\n\n<ul>\n<li>Fix - Restore EOF handling in getRawObject()<\/li>\n<\/ul>\n\n<h4>4.1.5 - 7 October 2026<\/h4>\n\n<ul>\n<li>Fix - Restore correct cross-reference stream chain traversal in decodeXrefStream()<\/li>\n<\/ul>\n\n<h4>4.1.4 - 8 September 2026<\/h4>\n\n<ul>\n<li>Return full original path (path with query and\/or fragment, if exists) if not PDF<\/li>\n<\/ul>\n\n<h4>4.1.3 - 7 September 2026<\/h4>\n\n<ul>\n<li>Nuanced file handling for WooCommerce v. Easy Digital Downloads v. Download Monitor<\/li>\n<\/ul>\n\n<h4>4.1.2 - 22 August 2026<\/h4>\n\n<ul>\n<li>Confirming compatibility with WP 7.1<\/li>\n<\/ul>\n\n<h4>4.1.1 - 18 August 2026<\/h4>\n\n<ul>\n<li>Fix \"Union types allowed PHP &gt; 8.0\" in cynpdi.php, since we are still PHP 7.4 compatible<\/li>\n<\/ul>\n\n<h4>4.1.0 - 17 August 2026<\/h4>\n\n<ul>\n<li>Tweak to parse_file_path() method to remove redundant check and improve Bedrock\/etc. compatibility<\/li>\n<li>Bumped WP (7.0) and WC (8.2) required versions to match required PHP version (7.4)<\/li>\n<li>Change namespacing (sorry) &amp; update copyrights on library files<\/li>\n<li>Define over-written TCPDF constants early in wwpdf-watermark.php<\/li>\n<li>Deprecate <code>wwpdf_filter_watermarked_file<\/code> hook in the free version. While I love open source, I also need to be able to support myself. The paid version includes many filter hooks for developers. Thanks for understanding.<\/li>\n<li>Show (disabled) library select in settings panel<\/li>\n<li>Phone home in settings panels for plugin news, if any<\/li>\n<\/ul>\n\n<p>Older changes are found <a href=\"https:\/\/plugins.svn.wordpress.org\/waterwoo-pdf\/trunk\/changelog.txt\">in the changelog.txt file in the plugin directory.<\/a><\/p>","raw_excerpt":"Watermark and password protect PDFs with WooCommerce, Easy Digital Downloads, and Download Monitor Shop. No Ghostscript required, PHP 8+ compatible.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/32482","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=32482"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/canyonwebworks"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=32482"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=32482"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=32482"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=32482"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=32482"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=32482"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}