YaHP is a Java library that allows you to convert an HTML document into a PDF document. YaHP use a pluggable renderer system. However, since the 1.2.19 version only the renderer based on Flying Saucer is available.
You can log any issue in the dedicated section.
Please contact the creator of YAHP at quentin.anciaux@advalvas.be if you have any question.
- Updated third party libraries to their latest or most compliant version:
- Flying Saucer: 16/04/2011
- iText: 2.1.7
- Apache Log4j: 1.2.16
- JTidy: r938
- Shanidom: 1.4.17
- Jaxen: 1.1.1
- Removed Apache Commons IO and Apache Commons Log libraries which are not needed any more.
- Removed extra calls in charge of adding a document producer since they are not applicable any more and got rid of deprecated constants.
- Revert to previous itext and flying saucer librairies due to licensing problem. This version is LGPL.
- Do not validate html and do not### xhtml DTD from w3 site (thanks to Johnathan Crawford).
- Bug correction in entities normalization.
- Inline remote css into a style element inside the document.
- Updated itext and flying saucer librairies to latest version (thanks to Johnathan Crawford).
- Fix a problem with multiple text node copy by jtidy.
- Updated jars.
- Remove numerous "INFO" default logging to the console.
- Better handling of ms word generated html.
- Html document is normalized (entities are translated in characters) before rendering.
- Handle page break tag even if namespace declaration is missing
- Allow multiple threads to concurrently use the same CYaHPConverter object instead of serializing access (or using one CYaHPConverter object per thread).
- Can change page size and orientation after a page break.
- If the title tag is set in the html, it is used for the pdf title.
- Added LEGAL and LETTER constant for page size
- Fixed Out Of Memory Error when a textarea was present in the html source.
- Fixed incorrect page size when a page break is inserted.
- Header and Footer can contain html.
- Updated samples.
- Removed old renderers
- Rendering of form components (textfield, textarea, combo, radiobutton, checkbox, button , listbox) in the flying saucer renderer
- Corrected double encoding of &, < and >
- Normalize html entity before rendering
- known bug: Header/footer rendering does not works in headless mode for the flying saucer renderer
- Updated samples.
- Code cleanup
- Tested with j2se 1.4.2.
- Better rendering of tags soup.
- Clean up, ensure compat with jdk 1.5.
- Updated samples.
- Added flying saucer xhtml renderer.
- Updated samples.
- Fixed a NPE if the FOP_TTF_FONT_PATH properties is not set.
- Font embedding does not need anymore the fonts to be in the OS system fonts folder in jdk < 1.6 on windows OSs.(Thanks to Takis Bouyouris)
- Font embedding does not need anymore the fonts to be in the OS system fonts folder in jdk < 1.6.
- Sometimes the font embedding was still not working while running inside tomcat, this bug has been fixed.
- Works again in headless mode.
- Font embedding does not need anymore the fonts to be in the OS system fonts folder.
- Fix bug: The font embedding was not working while running inside tomcat. (Thanks to Takis Bouyouris)
- Fix bug: Sometimes when running inside tomcat, the following error occured: 'UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JTextPane'. (Thanks to Takis Bouyouris)
- Removed the method "getResources" from the classloader, because this method is marked as final in 1.4 JVM and so did break compatibility of yahp with 1.4 vm.
- Updated classloader.
- Use current DPI screen settings to calculate page size.
- Updated parser to ShaniXmlParser-v1.4.16.
- Updated xalan.
- Updated parser to ShaniXmlParser-v1.4.15.
- The swing renderer can now render fieldset and legend tags.
- Updated parser to ShaniXmlParser-v1.4.14.
- v1.2.6 was broken in application server environment.
- Use FOP 0.93.
- Can now embed automatically TrueType font by giving a path where TTF files are located with the yahp parameter IHtmlToPdfTransformer.FOP_TTF_FONT_PATH.
- The page-break yahp:pb works again.
- Updated samples PDF for the swing renderer.
- Updated javadoc.
- Corrected PageSize class where bottom margin was set incorrectly in CM.
- Corrected support for accentuated letters.
- Updated classloading mechanism.
- Corrected incorrect page count on some html.
- Remove infinite loop in the css parser.
- Tidyfy html before sending to rendering.
- Corrected a class cast exception in the swing border helper.
- If base url not set, take base tag as base url if found.
- Updated xml/html parser.
- Default charset to utf-8.
- Correct errors with commons-logging under tomcat on windows.
- Ignore attribute's case on image tag.
- Corrected rendering of elements with size set in percent.
- Rendering of CSS border in the swing renderer.
- Better memory usage.
- Use Shani xml parser v1.4.6.
- Corrected non rendering of table row on edge of pages in the swing renderer.
- Better memory usage.
- Use Shani xml parser v1.4.2.
- Corrected dissapearance of header/footer in the swing renderer.
- Better memory usage when css style is put on the document.
- Huge memory usage improvement.
- Use Shani xml parser v1.3.8.
- Add intelligent and automatic table rows break in the swing renderer.
- Fix incorrect alignment with embedded fonts in the swing renderer.
- Javadoc updated.
- Corrected incorrect right alignment of text in pdf generated by the swing renderer.
- Javadoc updated.
- The swing renderer now has a pagebreak tag which permits to cut one document in several pages.
- Possibility to embed font with the yahp-fop-config.xml file.
- Javadoc updated.
- Sample application updated.
- Better rendering of forms components (button, field, ...) in the swing renderer. (see widget.pdf)
- List box are now rendered with the swing renderer.
- Javadoc updated.
- Swing renderer samples files updated.
- Rendering of forms components (button, field, ...) is now custom made in the swing renderer.
- The swing renderer is two times faster.
- Correct rendering of scaled page with the swing renderer.
- Rendering of the content of input field and textarea with the swing renderer.
- Sample application updated.
- Javadoc updated.
- Swing renderer samples files updated.
- Can sign a document with a certificate.
- Code cleanup.
- Sample application updated.
- Javadoc updated.
- Corrected "drawing error" occuring in acrobat reader of samples pdf generated with the firefox renderer by using latest ghostscript and not ghostscript eps.
- Ensure all buttons/combo/textfield are painted with the swing renderer.
- Sample application updated.
- Javadoc updated.
- All samples files updated.
- Support header/footer in utf-8 with the firefox renderer.
- Support concurrent rendering with the firefox renderer.
- Better rendering of comboboxes and buttons with the swing renderer, they are painted as vector instead of bitmap.
- Sample application updated.
- Javadoc updated.
- All samples files updated.
- Can set header/footer and page size with the firefox renderer.
- Recompiled iText to work on 1.4 JVM and corrected a LinkageError on 1.4 JVM.
- Sample application updated to use all the new properties.
- Javadoc updated.
- Firefox samples files updated.
- Added a new renderer which use firefox as html renderer.
- Sample application updated to use all the new properties.
- Javadoc updated.
- Samples files updated.
- Renderers are now pluggable.
- Added a new renderer which use OpenOffice.org writer as pdf generator.
- Sample application updated to use all the new properties.
- Refactoring and cleanup of code.
- Does not copy yahpxxx.jar in the temp directory anymore.
- Javadoc updated.
- Samples files updated.
- Added handling of pdf encryption.
- Added several properties in IHtmlToPdfTransformer interface, see javadoc.
- Cleanup of code.
- Updated the javadoc.
- Updated to the new ShaniXmlParser 1.3.6.
- All samples files updated.
- Correct rendering of page containing chinese characters.
- Better rendering of button/checkbox components.
- Updated to the new ShaniXmlParser 1.3.6-pre.
- Samples files updated.
- Intelligent cutting of pages.
- Better rendering of page footer.
- Detect if rendering in the event thread and avoid calling SwingUtilities invokeAndWait in this case.
- Ensure synchronized rendering of image inside the document.
- Updated to the new ShaniXmlParser 1.3.5.
- Use SwingUtilities.InvokeAndWait to synchronize with the swing paint thread.
- Better rendering of page header. (page footer still rendered as image)
- Samples files updated.
- Add property "FAST_TRANSFORM" default to true, which permits to have faster transformation, but will produce black background on transparent gif under kpdf (only so far).
- Circumvent a NullPointerException in JDK ParagraphView class under jdk 1.4.2
- Set the org.apache.commons.logging.Log System property to force the use log4j instead of setting wrongly with a LogFactoryImplementation.
- Correct rendering of comboboxes.
- Correct rendering of images with transparent zone (no more black background)
- Set the org.apache.commons.logging.Log System property to force the use of the default logger inside the Yahp context.
- Samples files updated.
- Javadoc updated
- Corrected a memory leak in the classloader due to commons logging.
- Destroy the classloader on finalization.
- Added the META-INF/services/org.apache.commons.logging.LogFactory file to force the use of the default logger inside the Yahp context.
- Remove not selected option tag from DOM.
- Updated xml parser.
- Better rendering quality.
- Render directly in the pdfgraphics2d and dot not use an offscreen buffer which had bad rendering quality.
- Fonts are now vectorized and not as bitmap.
- Samples updated.
- Javadoc updated.
- Force HTMLEditorKit on the JTextPane used for rendering. (prevent source display)
- Remove the doctype node if any before giving the source to the JTextPane
- Now render correclty the Text field, buttons, combobox, ... (before was blank)
- Remove the use of TimeoutException in the CMutex clas because this exception only exists in JDK 1.5
- Set the thread context classloader to prevent Duplicate Class.
- Document/javadoc
- Set antialiasing on the graphics2d object.
- Handle '../' in css and image links.
- Use a specialised classloader to load inner jar.
- Compile FOP for jdk1.4 instead of 1.5.
- Initial release