Category : EDDiMark PDF

Updates & tips for EDDiMark, a PDF watermarking and password plugin for Wordpress + Easy Digital Downloads. Learn more and purchase EDDiMark here.

Invisible Watermarks and Other Ways to Protect Your PDFs

PDFs are a fantastic way to share documents – they preserve formatting, are widely compatible, and can even be compressed for easy transmission. But what if that PDF contains sensitive or monetized information? The Portable Document Format (PDF) offers some security, which when stacked can be quite effective. These include: Watermarks. Adding content to a PDF, especially content customized to the end-user (such as their name and other personally-identifying information like phone/email, can not only personalize a PDF, but also thwart unauthorized sharing. Keep reading to find out how to make your watermarks most effective against PDF theft. Encryption. Arcfour RC4, and the superior 128-bit key or 256-bit AES encryption Passwording. User and owner passwords can be set. An owner password gives the holder full control over the PDF, including the ability to remove passwording entirely — share with caution! continue reading…

Printing a barcode or QR Code on a PDF

If you are or even if you are not using WooCommerce or Easy Digital Downloads but are still programming in PHP, I am available to consult on your TCPDF barcoding project to get it running. Get in touch!   The WaterWoo PDF Premium and EDDiMark PDF plugins can add barcodes and QR codes to PDFs dynamically upon download request via WooCommerce or Easy Digital Downloads. This is because both WordPress plugins use TCPDF to write PDF content, and TCPDF allows for barcode creation. Though this blog post might also be helpful for someone just trying to figure out how to write a barcode with TCPDF and PHP, these instructions are more geared toward a Wordpress developer wishing to add 1D or 2D barcodes to existing PDF files. For WaterWoo, use the ‘wwpdf_add_barcode’ filter hook in the plugin (located in classes/wwpdf-watermark.php). continue reading…

Selling Customized Gift Certificates: A Case Study

When it’s impossible to have customers in the store and clients face-to-face, how can money be made? One fairly obvious, and earnest-enough, method is by selling your reputation on paper: gift certificates and gift vouchers. For many businesses there is a real opportunity for income here. And many (future) loyal customers understand that purchasing gift certificates is a way to support businesses right now. They know that by making these purchases, when the Great Shutdown begins to heal, their community might look closer to how it did in 2019.

Watermarking with NGINX

*** UPDATE *** As of November 2022 the information in this blog post no longer applies to the current versions of EDDiMark and WaterWoo. The post is provided for historical reference, but should be ignored by most people. A customer recently pointed out that serving watermarked files on a NGINX server needs to be done a little differently. He is using Kinsta hosting. I also confirmed the issue on a local NGINX server. By default, WaterWoo and EDDiMark try to place a PDF in the /tmp folder while watermarking takes place, then serve it (and delete the /tmp copy). Bottom line: Kinsta (or any NGINX server) does not allow user access to /tmp, and for good reason. “…you must not permit visitors to access to tmp nor config (the database dumps are stored in /tmp so a visitor can discover continue reading…

Now watermarking in any font!

Sort of a long time coming, but folks have been asking politely over the years if we could build in a font uploader for WaterWoo, such that fonts could be added without knowledge of PHP. As it was, it wasn’t too complicated to hook into the existing TCPDF addTTFfont() function, but we get it: not everyone likes PHP like we do! As of WaterWoo version 2.10, there is now a hidden admin settings page at yoursite.com/wp-admin/options-general.php?page=wwpdf-fonts (make sure to replace yoursite.com with your site), also linked from the main WaterWoo settings page under the font dropdown/selector. Visiting this settings page, you will see an uploader similar to the native Wordpress file uploader. You can either click to upload files, or drag files (one at a time) into the uploader area marked by dashed lines. In order for the font file continue reading…

A Consideration for Password-Protecting PDF Files

A few emails came in and got me thinking about use cases for passworded PDF files. One person wanted to know how to change the pop-up/alert in her PDF reader to let users know the password was their email address. Another person just wanted to know how to change the wording on the WooCommerce Thank You page and in order confirmation emails. Unfortunately, we cannot use PDF syntax to tell a PDF reader to use different wording in the password pop-up. That would be neat, but probably still buggy since there are dozens and dozens of different PDF reader applications (Acrobat/Reader, Foxit, Nitro, Preview, your browser), all with their own way of displaying that pop-up. So we must alert our customers in other ways that their password will be their email address, or what it will be. That way they continue reading…

Phone Number as PDF Password

A customer asked about maybe using a customer’s phone number as the PDF password instead of their email or an admin-chosen string. Here is some example code which will get that done. Make sure to test it, and customize ad-lib to suit your purposes. function waterwoo_use_phone_as_password( $password, $order_id ) { $phone = ”; // start by maybe getting phone number from order ID $order = wc_get_order( $order_id ); $order_data = $order->get_data(); $phone = $order_data[‘billing’][‘phone’]; if ( ! isset( $phone ) || $phone == ” ) { // no phone number yet, try seeing if user is logged in and has a saved phone number: if ( is_user_logged_in() ) { $user = wp_get_current_user(); $phone = get_user_meta( $user->ID, ‘billing_phone’, true ) ? get_user_meta( $user->ID, ‘billing_phone’, true ) : ”; } } // you might want to manipulate the phone number to remove continue reading…

PDF Watermarking Limitations, explained

Update March 2020: PDF Stamper (a separate plugin from Waterwoo PDF Premium) now allows PDF owners to keep their PDFs exactly as they are, but add a stamp. PDF Stamp is a drop-in plugin and requires users also purchase SetaPDF-Stamper software to install alongside it. Learn more here. WaterWoo is magic, but it does have its limitations. And one particular limitation has been disappointing customers, and frustrating us, for years. We'd like to explain. First of all, let's explain how WaterWoo works. In a nutshell, WaterWoo works by first reading a PDF into memory, then spitting it back out onto the page with watermarks rolled in. If the parser (FPDI or TCPDI) which reads the PDF does not read all the PDF, or cannot read certain PDF versions, then WaterWoo fails to deliver the expected. Ultimately, WaterWoo is built on continue reading…

TCPDF Performances

Make sure to test your watermarking thoroughly before going live! TCPDF is a fallible third-party library which does its best to parse/understand and re-write your PDF with your desired changes (watermarks/encryption/etc), but it cannot possibly work on all PDFs and on all servers 100% of the time. Stay realistic, think carefully through the process, plan, and do your testing. PHP Version You should be running at least PHP version 5.6 for the plugin to work, but higher that for it to work WELL. WordPress recommends you run PHP version 7.2 or higher. Our plugins are PHP version 8.3 compatible, so don’t hesitate to upgrade after making backups. PHP 7.0 is twice as fast for WordPress as PHP 5.6, and processes demands much more efficiently! Updating the PHP version on your server is the first thing you should try if you’re continue reading…

Little Package