Nothing yet...
- SECURITY Removed Log4J 1.x adaptor as it had CVE-2019-17571 with no updated version available.
- #448 Implement
linear-gradient
support forbackground-image
property. By @danfickle. Requested by @rja907. - #429 Major overhaul of
word-wrap: break-word
. Now a word will not be broken unless it is too big for a line by itself. By @danfickle. Thanks for reporting and testing @mndzielski. - #433 Do not justify lines ending with
<br/>
tag. Thanks for reporting @fcorneli. - #440 Remove trailing white space for right aligned text to avoid jagged appearance. Thanks for reporting @AnanasPizza.
- #446 Look for lang attribute on ancestor elements when using
lang()
selector. Thanks for reporting and tracking down the bug @fungc. - #430 Use relative path to license in source jars instead of absolute path. Thanks for reporting @gabro and fixing via PR @syjer.
- #417 Keep aspect ratio of images with width/height properties as well as min/max width/height properties. Thanks for reporting and basis for fix @swarl.
- #423 Allow multiple font sources to be specified with
format
tags. Only useformat(truetype)
. Thanks for requesting @MichaelZaleskovsky and basis for implementation @syjer. - #415 Avoid class cast exception if user tries to float table cell. Thanks for reporting @dmartineau99 and PR @syjer.
- #421 Avoid NPE when justified text is mixed with unjustifiable content. Thanks for reporting @Megingjard and PR @syjer.
- Updated PDFBOX 2.0.17 to 2.0.19.
- #413 Handle form problems such as no name on input element without throwing a NPE. Thanks @syjer for PR and @mmatecki for reporting.
- #412 Add HTML block level elements usch as
section
to default CSS. Thanks @syjer. - #339 Remove the JSoup to DOM converter module. Thanks @kewilson.
- 0cd098 Fix for letter-spacing support on last line of block with trailing space. Also performance improvements and refactoring. By @danfickle.
- #410 Fix for wrong bold setting on list item counters. Thanks @syjer for PR fix (and test!) and @acieplinski for reporting.
- Wiki Configurable text justification settings as part of a justification overhaul that also allows more space to be used inter-char when there are no spaces on the line. By @danfickle. Commits listed in #403.
- #403 Soft hyphen support. Soft hyphens are now replaced with hard hyphens when used as line ending character. Thanks @sbrunecker.
- #408 Fix for bookmarks not working with HTML5 parsers such as JSoup. Thanks @syjer for investigating and fixing and @Milchreis for reporting.
- #404 Upgrade Batik to 1.12 and xmlgraphics-common to 2.4 (both used in SVG module) to avoid CVE in one or both. Thanks @avoiculet.
- #396 Much faster rendering of boxes using border-radius properties. Thanks @mndzielski.
- #400 Support for
lang
andtitle
attrbiutes andabbr
tag for accessible PDFs. Thanks @Ignaciort91. - #394, #395 Upgrade PDFBOX to 2.0.17 and pdfbox-graphics2d to 0.25. Thanks @cristan, @rototor.
- #384 Allow user to provide PDFont supplier. Thanks @DSW-PS.
- #373 Fix regression where both max-width and max-height are provided for images with certain aspect ratios. Thanks @rototor.
- #380 Much better support for flowing columns including explicit column breaks, floating content, block level nested content. By @danfickle.
- #372 Much improved sizing support for
img
,svg
andmath
elements. - #344 Use PDFs in
img
tag:<img src="some.pdf" page="1" alt="Some alt text" />
.
- #361 The SVG renderer now uses Batik in a more secure mode (no scripts, no external resource requests) by default. If you need the old behavior that allowed external resource requests and possibly scripts, please see the new BatikSVGDrawer constructor (only for trusted SVGs). Thanks @krabbenpuler.
- #363 Upgrade PDFBOX to 2.0.16. Thanks @rototor.
- #353 Better error handling around SVGs linked from
img
tag. Thanks @ieugen. - #342 Fixed text-justification/letter-spacing when fallback fonts are in use. Thanks @daliuss.
- #351 Improved text-justification by removing spaces at ends of lines. Thanks @halcsi.
IMPORTANT: This release was brought forward due to a CVE in PDFBOX. While not directly affecting this project (it affects parsing of untrusted PDFs), it is better not to have a vulnerable library on your classpath.
- #349 Upgrade PDF-BOX to 2.0.15 to avoid CVE in 2.0.14. Thanks @BryceMehring.
- #347 Add document language and title preference for PDF/A documents to satisfy Acrobat Pro validator. Thanks @mattstjean.
- #339 Mark Jsoup DOM converter module as deprecated (for removal). Please see integration guide for replacement. This module may also pull in an insecure version of Guava so please migrate now.
- #336 Fix for broken image links causing an NPE. Thanks @svenfrauen.
- #334 Allow the user to supply
PDPage
objects via page supplier. Thanks @DSW-PS.
- Please start using the fast renderer (
builder.useFastMode()
) as the old renderer will be removed in a future version. - #180 Fast renderer is finally ready for production. The fast renderer comes with:
- Nearly 150 automated end-to-end regression tests. This is about 150 more than the old renderer.
- Improved performance. This renderer scales linearly with the number of pages, compared to the old renderer which scaled with the page count squared.
- Far better support for transforms, including nested transforms, multiple transforms and transforms interacting with hidden overflow, etc.
- Better support for hidden overflow, with boxes now not escaping except with accordance to the standard.
- Support for inserted cut off overflow pages. See Cut-off page support on the wiki.
- Link areas and their hash link targets now repect transforms.
- Bookmark targets now respect transforms.
- Improved page placement for boxes. Now respects overflow and tranform properties.
- Greater understanding which should make fixes and feature improvements easier.
- Visual testing API is now available to use in the PDFBOX module. Please see testing your PDF on the wiki. Thanks @red6.
- #333 Upgraded PDFBox to 2.0.14 and PDFBox-Graphics2D to 0.21.
- #315, #79 Accessible and tagged PDF support. See PDF Accessibility (PDF UA, WCAG, Section 508) Support on the wiki.
- #326 Proper support for PDF/A standards with automatic regression testing. See PDF/A Standards Compliance on the wiki.
- #328 SVG with
page
rule was crashing in certain circumstances. - #324 Better logging with invalid or missing fonts.
- #320 NPE prevention in case of incorrect font configuration.
- a145329 Were using incorrect font-metrics in certain situations.
- #303 Fixed: Table borders are partly transparent.
- #297 Fixed: Border not printed with "overflow: hidden".
- #304 Fix warnings for icon font without space inside PDF/A, add tests.
- #301 Make loading resources from classpath work when openhtmltopdf is a named module.
- #232 Were using JRE internal APIs.
- #289 System.out.println("Getting image") in NaiveUserAgent.
Thanks to these people for pull-requests:
- @rototor
- @brundipub
- @zimmi
- @dnguyenminh
Finally, a big thanks to all issue reporters and extra thanks to those who help out in issues.
- #284 #288 IMPORTANT: This release was brought forward due to a CVE in Apache Batik used by the optional SVG module. While this project strongly advises not to use untrusted XML either in SVG or XHTML, you may be using Batik in another part of your project and therefore it is a good idea to update. Thanks a lot @ghenadiibatalski, @chubbard
- #286 #281 Fix for text decorations/background incorrect coverage in justified text. Thanks @koritakoa, @allartammik
- #280 This will be the last release compatible with Java 7, from now on Java 8 or above will be required. Thanks for everyone's thoughts on this.
- #279 #264 IMPORTANT: This release was brought forward so that we link against PDFBOX-2.0.12 as previous versions had another DOS security vulnerability when parsing arbitary PDF files. Also there was a security issue in the old version of JSoup used by the optional jsoup-dom-converter module. While I believe these vulnerabilities should not impact this project directly, having an insecure library on your classpath may be dangerous if you use it for other tasks. Thanks @rototor, @dheid
- #279 Support for testing and running on JDK-11. Extensive work by @rototor. Thanks.
- #278 Support for additional PDF/A conformance levels. Thanks @TheUnnamedDude
- 87dc1a9 Fixed nasty bug where positioned elements (absolute, fixed) were being printed twice. By @danfickle
- #271 Support right-to-left list items. Thanks @ieugen for work, @sandre1 for reporting.
- Much more work on the fast renderer. But not ready for prime time yet!
- NOTE: Started moving project documentation to wiki.
- #228 Support for letter-spacing CSS property. By @danfickle
- #143 Merging of remaining items thanks to @backslash47
- Support for
box-sizing:border-box
. With additional work (for min/max width/height) by @danfickle - Text justification for embedded unicode fonts
- #250 Optional PDF/A conformance. Thanks @syjer
- Support for
- #252 Incorrect placement of form controls. Thanks @tiredelk
- #249 Cache font metrics across runs to avoid having to load fallback fonts on each run. By @danfickle
- #254 Allow use of SVG image in image tag. Thanks @syjer
- IMPORTANT: This release was brought forward so that we link against PDFBOX-2.0.11 as previous versions had a security vulnerability when parsing arbitary PDF files. While I believe this should not impact this project directly, having an insecure library on your classpath may be dangerous if you use it for other tasks. #241 #239 Thanks @rototor, @cseblog
- NOTE: This release incorportate a new faster renderer (especially for large documents) that is in alpha state. Specifically, it can be used with everything except inline-blocks.
You can start testing it now with
builder.useFastMode()
#180 Thanks @rajaningle @javimartinez @dilworks @rototor - Image with CSS max-width and max-height incorrectly scaled #242 Thanks @koan00
- Bold and italic emulation #240 Thanks @syjer @backslash47
- Work on correctly outputting multiple HTML files to one PDF #222 Thanks @rototor
- ONGOING: Attempt at fixing font file handle leak #215 Thanks @rototor
- Don't throw NPE when no base URI is provided #206
- Fix link annotation placement in margin or generated boxes Thanks @jesselong, @Kuhlware, @markhowardnz
- Use common base class for PDF and Java2D builder - SOME IMPORTS MAY CHANGE Thanks @rototor
- Major work on transforms, we're getting there, but still test well before use. Thanks @rototor
- Make it possible to set a PDF producer Thanks @schmitch
- Support for JFreeCharts diagrams with simple markup Thanks @rototor
- Ability to stamp another PDF on page Thanks @rototor
- Support for Latex Thanks @rototor
- Support for MathML Thanks @m-a-t
- Support for HTML and MathML character entities such as nbsp, etc
- Allow user to construct their own PDDocument so memory options can be specified Thanks @rajaningle, @javimartinez
- Fixed silly bug and got dramatic performance improvement for large documents
- Fix for XML loading problems where older version of xerces was being picked up Thanks @sosnut
- Fix for XML loading problems with JBoss,Wildfly Thanks @estevandiedrich, @alanhay
- Support image maps on img, object and svg Uses a kong polygon tesselation implementation by sunshine2k
- API BREAKING CHANGE: Support custom shape <=> link maps in object drawers
Note: Shaped links only work in Acrobat Reader. All other PDF reader seem to ignore them.
- Upgrade the PDFBox to 2.0.8 and PDFBox-Graphics2D to 0.10 versions again Thanks @rototor
- Fix incorrect strikethrough offset Thanks @alebar, @backslash47, @izhenka
- Allow percentages for max-width and max-height of images Thanks @backslash47
- Better sizing system for inline SVG images Thanks @harbulot
- Allow uri resolver to resolve uri before checking if a data uri Thanks @AlbanSeurat
- Ability to run examples from maven Thanks @jartysiewicz
- Fix to allow jar scheme urls Thanks @geesen
- Font mapping in custom object drawer rather than using vector shapes Thanks @rototor
- Upgraded PDFBOX to 2.0.7, ICU4J to 59.1 and PDFBOX-GRAPHICS2D to 0.7 Thanks @rototor
- Implemented CSS3 flowing text columns Thanks @miminno
- FIX: Don't write miter values of zero into the PDF, fixes dotted/dashed lines in Acrobat Reader
- Allow collapsed borders with table pagination Thanks @Epimetheus89
- FIX: Dispose of thread local when renderer is cleaned up Thanks @rototor
- FIX: Link handling when identical link positions on multiple pages Thanks @rototor
- FIX: Allow user to disable logging Thanks @GrammyTraore
- Handle TrueType font collections added in builder Thanks @rototor
- Implement custom object drawer for Java2D output Thanks @rototor
- Upgrade PDFBox library to 2.05 Thanks @rototor, PDFBox team
- Support for inline SVG images Thanks @rototor
- Support for outputting paged or continuous images Thanks @rototor
- Don't output acroform for formless document Thanks @aleksandr-m
- Upgraded to PDFBox 2.0.4 Thanks PDFBox team
- Fixed memory leak - properly - in image processing on some JREs Thanks @skjardenCode and @MartyMcMartface
- Initial support for CSS transform property Thanks @rototor
- Add support for max-width and max-height on img elements Thanks @achuinard
- SECURITY ISSUE: Prevent XXE Attacks Thanks @lillesand
- BREAKING CHANGE: Support for dir attribute and bdi element
- Do not download fonts that are not actually used
- Fixed resolution of relative URLs in inline style declarations
- Added support for hidden controls and submit controls with values
- Corrected naming scheme for form controls Thanks @scoldwell
- Reimplemented text justification Thanks @hiddendog
- Fixed bug in table borders Thanks @rototor
- Added support for -fs-page-break-min-height CSS property Thanks @rototor
- Added support for -fs-table-paginate-repeated-visible CSS property Thanks @rototor
- BREAKING CHANGE: Removed font subset method in builder, replaced with property in font face rule. Example:
-fs-font-subset: complete-font;
- Added support for text, password, textarea, submit, reset, checkbox, radio and select - multiple and single - controls
- BREAKING CHANGE: Changed bi-directional method names in builder to be more consistent.
- Add method to builder to specify custom text transformers
- Add method to builder to specify a custom line breaker Thanks @Magotchi
- Add method to builder to specify replacement text if no specified font can render a character.
- BREAKING CHANGE: Reworked URI resolver, changed FSUriResolver interface and made sure it is used everywhere - See example in integration guide.
- Fixed issue where different size pages in the same document were not being recognized.
- Add method to builder to specify default page size. Example:
builder.useDefaultPageSize(PdfRendererBuilder.PAGE_SIZE_LETTER_WIDTH, PdfRendererBuilder.PAGE_SIZE_LETTER_HEIGHT, PdfRendererBuilder.PAGE_SIZE_LETTER_UNITS);
- BREAKING CHANGE: If no page size is specified in builder or CSS use A4, rather than locale dependent. See above.
- Silently discard control characters, etc at the rendering stage Thanks @scoldwell
- Fixed incorrect spacing when characters are replaced Thanks @scoldwell
- Experimental and unstable SVG support - early prototype
- Replaced non-breaking spaces - and other unusual spaces - with normal space if font does not support them Thanks @rototor
- Added a method for adding a PDF font using an input stream Thanks @aleksandr-m
- Added support for plugging in an external URI resolver
- Added support for plugging in an external cache
- Added support for font fallback for Java2D Thanks @willamette
- Fixed crash issue when document contained CDATA sections Thanks @hiddendog
- Added support for font fallback for PDFs
- Added fluent builder style API for PDF conversion
- Added ability to plugin external HTTP/HTTPS implementation
- Added Jsoup HTML5 to DOM converter module
- Fixed divide-by-zero error in BorderPainter class. Thanks @fenrhil
- Added slf4j logging facade adapter
- Added right-to-left(RTL) and bi-directional text support
- Added output device using PDF-BOX 2.0.0
- Make sure XML Document Builder doesn't resolve external DTDs
- Removed obsolete ITEXT based output devices
- Removed SWT support
- Regressions (please open issue if required):
PDF form controls.Reimplemented in RC5- PDF font types other than built-in and truetype.
- XMP PDF metadata in PDFs.
PDF encryption.Reimplemented in RC5PDF text justificationReimplemented in RC5