All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- None
- None
- None
- Add
raise_on_all_errors: true
option to raise on any error that prints to STDOUT during PDF generation - Add ability to use the
assigns
option torender
to assign instance variables to a PDF template - Add ability to track console progress with
progress: -> (output) { puts output }
. This is useful to add reporting hooks to show your frontend what page number is being generated.
- Fix conflict with other gems that hook into
render
and avoid usingalias_method_chain
where possible - Fix issue using the shell to locate
wkhtmltopdf
in a Bundler environment - Fix
wkhtmltopdf
path detection when HOME environment variable is unset - Fix error when the
Rails
constant is defined but not actually using Rails - Fix compatibility issue with Sprockets 4
- Fix compatibility issue with
Mime::JS
in Rails 5.1+ - Fix deprecation warning by using
after_action
instead ofafter_filter
when available - Provide Rails
base_path
tofind_asset
calls for Sprockets file lookup - Logger changes:
- Documentation changes:
- Update link to wkhtmltopdf homepage
- Update link to
wkhtmltopdf_binary_gem
- Update documentation for usage with the Asset Pipeline
- Document
default_protocol
option - Document
image
andno_image
options - Document issue with DPI/scaling on various platforms
- Document creating and attaching a PDF in a mailer
- Document dependency on
wkhtmltopdf
with RubyGems - Add example using WickedPDF with Rails in an API-only configuration
- Add example for rending a template as a header/footer
- Add GitHub issue template
- Add CodeClimate Badge
- RuboCop cleanup
- Updates to Travis CI pipeline to support newer versions of Ruby & Rails
- Support Rails 5.x and Sprockets 3.x
- Support
window_status: 'somestring'
option, to instruct wkhtmltopdf to wait until the browserwindow.status
is equal to the supplied string. This can be useful to force rendering to wait as explained quite well here - Support
no_stop_slow_scripts: true
to let slow running scripts delay rendering - Changes to asset finding to support Rails 5
- Revert shellescaping of options. The fix was causing more issues than it solved (like "[page] of [topage]" being escaped, and thus not parsed by
wkhtmltopdf
). See #514 for details.
- Numerous RuboCop style violation fixes, spelling errors, and test-setup issues from indyrb.org hack night. Thank you all for your contributions!
- Shellescape options. A stray quote in
header
orfooter
would cause PDF to fail to generate, and this should close down many potential attack vectors if you allow user-supplied values to be passed intowicked_pdf
render options.
- Check that logger responds to info before calling it. It was possible to have a
logger
method defined as a controller helper that would overrideRails.logger
. - Issue with Sprockets 3.0 where an asset referenced in a stylesheet not existing would raise an exception
read_asset
on nil.
- Revert default DPI. Some installs of
wkhtmltopdf
would experience major slowdowns or crashes with it set to 72. It is suggested that a DPI of 75 may be better, but I'm holding off on making it a default without more information.
- The default dpi is now 72. Previously the default would be whatever your
wkhtmltopdf
version specified as the default. This change speeds up generation of documents that containborder-radius
dramatically
- Made minor RuboCop style tweaks.
- Added default RuboCop config and run after test suite.
- Issue with
nil.basename
from asset helpers.
- Accepted that
WickedPDF
cannot guarantee backwards compatibility with older versions ofwkthmltopdf
, and decided to publish a new version with the MAJOR number incremented, signaling that this may have breaking changes for some people, but providing a path forward for progress. This release number also signals that this is a mature (and relatively stable) project, and should be deemed ready for production (since it has been used in production since ~2009, and downloaded over a million times on RubyGems.org). - Stopped attempting to track with version number of
wkhtmltopdf
binary releases (wkhtmltopdf
v9.x ==WickedPDF
v9.x) - Adopted Semantic Versioning for release numbering
- Added a CHANGELOG (based on keepachangelog.com)
- Misc code tweaks as suggested by RuboCop
- Check version of
wkhtmltopdf
before deciding to pass arguments with or without dashes - New arguments and options for the table of contents supported in newer versions of wkhtmltopf:
text_size_shrink
,level_indentation
,disable_dotted_lines
,disable_toc_links
,xsl_style_sheet
- Merge in global options to
pdf_from_html_file
andpdf_from_string
- Add ability to generate pdf from a web resource:
pdf_from_url(url)
- Removed explicit dependency on Rails, since parts of this library may be used without it.
- Comment out the
:exe_path
option in the generated initalizer by default (since many systems won't havewkthmltopdf
installed in that specific location) - Issues with
file://
paths on Windows-based systems - Issues with parsed options/argument ordering on versions of
wkthmltopdf
> 0.9 - Issues with middleware headers when running Rails app mounted in a subdirectory
- Issues with options that have a
key: 'value'
syntax when passed towkthmltopdf
- Issue with
:temp_path
option being deleted from original options hash - Issue with header/footer
:content
being deleted after the first page - Issues with options being modified during processing (including global config options)
- Issues with asset helpers recognizing assets specified without a protocol
- Issues with
url()
references and embeddeddata:base64
assests in stylesheets rendered withwicked_pdf_stylesheet_link_tag
- Asset helpers no longer add a file extension if it already is specified with one