Category : EDDiStamper

Updates & tips for EDDiStamper, a PDF watermarking and password plugin for Wordpress + Easy Digital Downloads using the best PDF parsing library there is out there: SetaPDF. Learn more and purchase EDDiStamper 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…

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…