EDDiMark has been replaced by PDF Ink. Check out PDF Ink here.
3.1.3 - 21 October 2024
- Fork tcpdi_parser.php and add catch for presence of <> in getRawObject() method; modernize syntax and correct some logic
- Update links that were web.little-package.com to www.little-package.com
- Fix - PHP 8.2 incompatibility. Check that metadata is string before sending to arrUTF8ToUTF16BE() where pregReplace() is used
- Fix - font upload feature
- Tweak - Add more watermarking fonts (those included with TCPDF)
- Tweak - Minimum PHP required now 7.2
- Update TCPDF library to version 6.7.5
- Testing with PHP 8.3
- Feature - Add 'eddimark_abort_watermarking' filter hook to launch_watermarker() and edd_free_download_files() methods
- Fix - Don't fetch remote file twice when not using EDD Free Downloads
- Fix - Use submitted data (files, name/phone/etc) for shortcodes when using testing feature
- Fix - Save footer Y value as '00' when 0 entered
- Fix - Don't set user info from current user unless no test user info is set
- Tweak - make sure remote file has a file name (not "untitled.pdf"), esp when S3 or Dropbox are used
- Tweak - better error handling in classes/eddimark-file-handler.php apply_watermark() method
- Tweak - Better handling for recycled PDF files
- Tweak - Instead of merging settings arrays in test watermarking, just append test setting dummy values to settings array
- Fix - for when external/remote file does not have '.pdf' in name or URL - must do crude check for whether a PDF or not
- Fix - get intval() of margin settings when none is set in per-download settings to avoid string + int fatal error
- Feature - footer (2nd watermark placement) rotation
- Feature - right margin adherence with RTL and use of 90º rotation
- Fix - catch user info during EDD Free Downloads download for shortcode use
- Fix - make sure value is set for overlay/footer rotation before running TCPDF Rotate()
- Fix - Remove erroneous constant references from TCPDI/TCPDF libraries
- Fix - Where EDDiMark license check can cause admin page load failure
- Fix - Most settings use the EDD settings API (e.g. edd_get_option()) and some do not
- Fix - Establish three-way compatibility with EDD S3 and EDD Free Downloads
- Tweak - Offer feedback when license is expired and updates no longer available
- Tweak - Add email to $args array in eddimark-file-handler.php edd_free_download_files() method
- Tweak - Language files update
- Tweak - Improve error reporting with Exception handling
- Tweak - Provision for if start page is greater than # pages
- Tweak - Namespace included libraries to avoid possible library conflicts
- Testing with EDD v3.2.4
- Fix - Footer Y adjustment changes page-by-page (PDF page orientation/size changes) - don't override original variable value with changed values
- Feature - Allow negative integer overlay Y settings, too
- Update software requirements
- Refactor file path handling for remote files (e.g. Amazon S3 and Dropbox)
- Clarify path in lib/tcpdf_child.php line 5
- Remove unnecessary 1.5GB status.txt file from lib/tcpdf/fonts/dejavu-fonts-ttf-2.37
- Unminify JS
- Fix deprecated jQuery inside .js files
- Stop trying to use system tmp folder during PDF manipulation; this fails on some servers such as NGINX. Fallback only. Use wp-content/uploads instead.
- update EDD SL plugin to v1.9.2
- Remove free sans, free serif, and free mono fonts from TCPDF library to reduce plugin size and prevent timeouts during auto plugin updates
- Update EDD Software License and fix PHP error
- Remove awkward tooltips from settings page, just print the prompts straight to screen.
- TCPDF update to version 6.4.4 - PHP 8.1 compatible
- Compatibility with Wordpress 6.0
- Add $download parameter to `eddimark_filter_overlay` and `eddimark_filter_footer` hooks
- Fix test file upload button and tooltips on settings page
- Compatibility with Wordpress 5.9, PHP 7.4
- Update EDD Software License API
- Fix - EDD method edd_get_htaccess_rules() only called admin-side, need it front-end too
- Tweak - TCPDF naming conflicts with other plugins using TCPDF. Would allow EDDiMark to use other plugin's TCPDF library, but EDDiMark TCPDF has been patched.
- Fix - Testing feature (backend) TCPDF protection settings not being applied consistently
- Tweak - TCPDF updates for PHP 8
- Tweak - Allow our EDDiMark temporary file locations using 'edd_local_file_location_is_allowed' more liberally in eddimark-file-handler.php
- Tweak - Update remote file check logic
- Tweak - Improve and add edd_debug_log logging messages
- Delete only PDFs when deleting accrued test watermarked files
- Correct file path when recycling files to customer - missing directory separator when using uploads folder.
- I18n improvement - translation files can be added to a WP languages 'eddimark-pdf' folder
- Improve string sanitization
- Tweak - 'eddimark_cell_width' filter added to allow for manually setting cell width on rotatable overlay watermarks
- Tweak - 'eddimark_after_setup_page' filter added to allow more extra fun with TCPDF
- Fix - clarify UI in the scenario with license when trying to deactivate an expired key
- Tweak - enqueue jQuery for download edit pages rather than print inline
- Various minor PHP syntax corrections and PHPDoc improvements
- Attempt to check for NGINX and use WP uploads folder instead of tmp
- Testing with WP 5.6
- Fix - remove query string from S3 file path before checking if is PDF or naming new file from it
- Feature - compatibility with the EDD All Access extension
- Feature - add font selection to per-download watermarking settings
- Fix - 0 inputs in per-download watermarking settings seen as empty - use isset() instead
- Fix - several fields in per-download watermarking settings not saved or not displaying because of mis-naming
- Fix No betas unless betas requested!
- Feature - per-download watermarking settings! Have unique watermarks on a per-download basis.
- Feature - more granular control of file protections with owner passwording and choice of encryption type.
- Feature - allow for unlocking document entirely with user password only (override of owner password with user password)
- Feature - settings page UX designed to indicate passwording/protections require encryption.
- Feature - designate end page for watermarking
- Feature - [TIMESTAMP] shortcode to stamp PDF with date watermarked
- Feature - Compatibility with EDD Free Downloads
- Tweak - refactor/reduce redundancy in classes/wwpdf-file-handler.php, classes/wwpdf-test.php, classes/test-watermark.php, and classes/watermark.php to improve speed and readability
- Tweak - use str_replace instead of preg_replace to improve speed of shortcode handling
- Update EDD SL library to version 1.6.19
- Fix - in testing whether to watermark file or not, comparison operator used where values weren't of same type, causing misses
- Fix - while testing whether file is watermarked or not, file extension not included in file['name'] in classes/eddimark-file-handler.php and files missed
- Beta version support, turn on beta delivery in Easy Digital Downloads > Tools > Beta Versions
- update TCPDF to 6.3.5
- PHP 7.4 compatibility in tcpdi/tcpdi-parser.php and tcpdi/tcpdi.php
- Stay safe out there!
- Feature - Test and on-the-fly watermarked PDF creation from EDD Extensions Settings panel (create watermarked PDFs any time), including easy PDF uploader
- Feature - New option in settings to serve already-watermarked file to customer to conserve processing
- Feature - New option in settings to serve un-watermarked file smoothly if watermarking fails, or show error and do not serve
- Feature - Move fonts and custom fonts outside the plugin directory, which is over-written with updates. Fonts are now at wp-content/uploads/eddimark-pdf/fonts
- Feature - Optional weekly cron for weekly removal of watermarked files (other schedules could be arranged with your own cron jobs, see www.little-package.com/blog)
- Feature - Error logging in Easy Digital Downloads logs
- Tweak - Performance improvements with selective loading of classes
- Tweak - Confusing 'eddimark_dont_cleanup' deprecated and 'eddimark_do_cleanup' added in classes/class-eddimark-file-handler.php
- Tweak - Only do_cleanup() in classes/class-eddimark-file-handler.php for forced downloads - not yet a way to determine download is complete and hook in.
- Tweak - Improve autoloader
- Tweak - Check for system requirements, fail on basic requirements (such as EDD loaded)
- Tweak - File naming system changed, "_#.pdf" is appended to downloaded files, where # is the payment ID. Previous use of time() meant customers' files could possibly criss-cross if downloaded simultaneously.
- Fix - Bad assignment operators used when $overlay_X == '00' or $overlay_Y == '00' in EDDiMark_Watermark class
- Fix - uninstall.php now actually removes most all traces of EDDiMark upon plugin delete
- Update Flate filter in inc/tcpdf/include/tcpdf_filters.php
- Feature - 'eddimark_filter_overlay' and 'eddimark_filter_footer' filter hooks added
- Tweak - Simplify use of of Multicell in class-wwpdf-watermark.php and class-wwpdf-watermark-test.php to deal with HTML/no HTML
- Fix - Mis-named TCPDF_IMAGES class
- Required Wordpress version moved from 4.4 to 4.9
- Feature - Easy AJAX font uploader (uploads TTF files) for watermarking with custom fonts via TCPDF (in beta). Once uploaded, fonts are available to select amongst core fonts in EDDiMark settings, general and per-product.
- Feature - allow for altering PDF file permissions array using 'eddimark_set_permissions' filter hook, details about options at https://tcpdf.org/examples/example_016/
- Update tcpdi_parser.php and TCPDF files, including updates for PHP 7.4
- Update Deja Vu Sans font included with EDDiMark to version 2.37
- Tweak - save API license key when clicking Activate/Deactivate in order to prevent user frustration
- Tweak - allow font sizes down to 1pt in settings (previously 6pt)
- Fix - adjust PDF parser to accommodate PDFs with NUL characters in XREF, causing missing pages otherwise
- Testing with WC 3.7.1
- Tweak - install new license API manager (Easy Digital Downloads "Sofware License"); your account information is now at www.little-package.com/account instead of www.little-package.com/my-account
- Fix for when someone wants to delete all data when deleting plugin
- Update support URLs from eddimark.me to www.little-package.com
- Fix - count() cannot evaluate expression in line 510 of inc/tcpdi/tcpdi_parser.php
- Change API server address - no longer at eddimark.me
- Fix - remove PHP 5.2 bug fix that breaks PHP 7.3.4+ functioning in inc/tcpdf/include/tcpdf_fonts.php
- Tweak - /inc/tcpdi/tcpdi_parser.php property getXrefData() - runs 4-5x faster
- Update WC API integration to version 2.2
- Confirm compatibility with EDD Dropbox extension
- Feature - Update TCPDF (bundled third-party software)
- Feature - Preserve PDF metadata (title, subject, keywords, creation date) while parsing
- Feature - New filter 'eddimark_timeout_extend' in class-eddimark-file-handler.php to better handle HTTP timeouts
- Fix - count() syntax error in /inc/tcpdi/tcpdi.php line 302
- Fix - to allow file to be stored locally after EDD 2.9.13 update
- Early testing for WP 5.0 beta
- Tweak - don't load plugin if EDD not active
- Fix - Left/right margin setting not calculated correctly in class-eddimark-watermark.php
- Tweak - use MultiCell() instead of WriteHTMLCell() where possible to save memory using TCPDF
- Tweak - set K_THAI_TOPCHARS constant to FALSE to speed up TCPDF
- Tweak - each() function removed for PHP 7 compatibility
- Fix - Don't serve existing watermarked files if file cleanup not being done
- Tweak - remove global $edd_options and use edd_get_option() instead
- Tweak - empty default values for empty option values
- Tweak - unique classnames for TCPDI/TCPDF to prevent possible conflicts
- Fix/Feature - new hook 'eddimark_dont_cleanup' to address files remaining in tmp folder without unique names.
- Feature - 'eddimark_file_name' filter hook added in case custom file naming desired
- Tweak - simplify text encoding, remove use of iconv(). This allows more characters to watermark.
- Add filter 'eddimark_use_uploads_dir' in /classes/class-eddimark-file-handler.php
- Add filter 'eddimark_download_file_name' in /classes/class-eddimark-file-handler.php - file name will remain unchanged by watermarking unless this filter is used.
- Feature - {OPAC} shortcode
- Fix - bug where some dictionary values would cause the offset to exceed data length
- First release