Category : WooStamper

Updates & tips for PDF Stamper for WooCommerce (AKA “WooStamper”), the best-in-class PDF-watermarking and password plugin for Wordpress + Woocommerce. Learn more and purchase WooStamper here.

Accessible PDF Stamping

Many people and organizations put the extra care into their PDF documents to ensure they are usable by ALL humans, not just people with good vision and keyboard/mouse dexterity. What does this mean? It is often imperative documents be accessible due to accessibility codes and laws. So it must be very frustrating to have accessibility features removed by a PDF manipulation plugin! Unfortunately, the open-source PDF manipulation libraries I use for many of my plugins does not allow for robust or reliable PDF manipulation. Namely, TCPDI/TCPDF depends on being fed a syntactically correct PDF, and then because of the way objects are read flat into PHP memory during the process, certain PDF features in the stream are necessarily lost. Marking/passwording with TCPDI/TCPDF or FPDI/FPDF is lossy, no way around it. However, the SetaPDF library from SetaSign works differently by parsing continue reading…

PDF Stamper improvements

Not only are we actively maintaining all our plugins, but we have been trickling out improvements… realized while we work on the successor to our PDF stamping plugins. For example, with version 1.2 of PDF Stamper (and v1.3 of EDDiStamper) there is better handling of PDF pages of varying size, in order to keep stamps inside the page boundaries, where you want them. These improvements occur as parent library improvements occur, and as we learn and grow! Oftentimes people wish to create their own dynamic shortcodes for stamping customer/user data on PDF files. We’ve made that easier with the filter hook ‘woostamper_filter_shortcodes.’ This hook allows you to adjust how stamping shortcodes (such as [FIRSTNAME], [EMAIL] etc) are parsed. Here is some example code showing how this filter might be used to prefer the Wordpress user profile data over WooCommerce order continue reading…

Sharing Passwords

That title probably caught your attention because… when do we ever share passwords? Actually, we do, a lot. Website administrators often have to share passwords with users and customers who have just been issued a password. Generally that is done automatically, without the administrator ever having any idea what password was shared. You know, for security. And this is something to think about for administrators who are passwording PDF files just before delivery. How will you let the end user know what the PDF password is? In case you’re stumped, here are some ideas for how to get that information across if you’re running a WooCommerce shop. The simple way WooCommerce has a setting for each product under the “Advanced” tab called “Purchase Note.” You can put details for the customer here and it will show on the order confirmation 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.

New Plugins!

This month there is loads more news than usual, and not much of it is easy to bear. Here in California we’ve been ordered to stay home now for more than a week. I’ve distracted myself by typing lots and lots code. It’s about time I addressed your ongoing request for a PDF watermarker that preserves internal links such as table of contents. For many of you with longer PDFs, these page indexes are crucial. While my proposed solution is more expensive and mildly more complicated to install than WaterWoo & EDDiMark, it offers improved PDF parsing/writing and heftier encryption, as well as backing by the PDF gurus at SetaSign. Bottom line: if it is essential your PDF keep its internal links, you want a -Stamper plugin, not WaterWoo or EDDiMark. Introducing PDF Stamper and EDDiStamper PDF Stamper for WooCommerce continue reading…

Custom Fonts with WooStamper (SetaStamper)

The SetaPDF library which PDF Stamper is built on allows quite a bit of font customization to be done. More on SetaPDF and font manipulations. For the meantime, a quick tutorial on how to get other fonts beyond the three packaged with the plugin (Times, Courier, and Helvetica). Start by finding a TrueType font (.ttf) file which suits your needs. Try to keep the file size small, subsetting if necessary so that your server isn’t bogged down managing a large font file while trying to manipulate your PDF. Upload the file to your wp-content/uploads directory, somewhere it won’t get overwritten. It makes sense to use the woostamper folder, so we’ve gone ahead and done that below. Arimo is a TrueType font which works for our purposes, so we have uploaded it to a folder “arimo.” Look at the function below continue reading…

Adding Custom Fonts to EDDiStamper

All three new Stamper plugins (EDDiStamper, PDF Stamper, and Download Monitor Stamper) come with the three standard PDF fonts: Helvetica, Times New Roman, and Courier. Not much to get excited about, I know. Whereas EDDiMark and WaterWoo (plugins based on TCPDF, not SetaPDF-Stamper) have built-in font uploaders with more instant gratification, the integration with Seta is a bit more complicated, and so you’ll need to use a little code. Whether you add the code into a custom plugin, your child theme functions.php file, or by using the more plug-n-play Code Snippets plugin doesn’t matter. Before using the following example code, we have started by creating a “fonts” folder inside the wp-content/uploads/eddistamper/ folder. We put our Comic Sans (yes!) TTF file inside the fonts folder. You can see that path reflected in line 6 of the code below. So, put the continue reading…

Little Package