XML/XHTML and CSS 2.1 renderer in pure Java

Related tags


Flying Saucer Download License: LGPL v2.1


Flying Saucer is a pure-Java library for rendering arbitrary well-formed XML (or XHTML) using CSS 2.1 for layout and formatting, output to Swing panels, PDF, and images.

Comprehensive documentation available in our user's guide, linked from our website at https://code.google.com/archive/p/flying-saucer/

For information on our development releases, please contact us on our mailing lists.

If you end up using Flying Saucer for your own projects, please drop us an email and tell us about it; it helps inform where we go next, and is interesting and inspiring to other developers.


Flying Saucer is distributed under the LGPL. Flying Saucer itself is licensed under the GNU Lesser General Public License, version 2.1 or later, available at http://www.gnu.org/copyleft/lesser.html. You can use Flying Saucer in any way and for any purpose you want as long as you respect the terms of the license. A copy of the LGPL license is included as LICENSE-LGPL-2.1.txt or LICENSE-LGPL-3.txt in our distributions and in our source tree.

Flying Saucer uses a couple of FOSS packages to get the job done. A list of these, along with the license they each have, is listed in the LICENSE file in our distribution.


New releases of Flying Saucer are distributed through Maven. The available artifacts are:

  • org.xhtmlrenderer:flying-saucer-core - Core library and Java2D rendering
  • org.xhtmlrenderer:flying-saucer-pdf - PDF output using iText 2.x
  • org.xhtmlrenderer:flying-saucer-pdf-itext5 - PDF output using iText 5.x
  • org.xhtmlrenderer:flying-saucer-pdf-openpdf - PDF output using OpenPDF
  • org.xhtmlrenderer:flying-saucer-swt - SWT output
  • org.xhtmlrenderer:flying-saucer-log4j - Logging plugin for log4j

iText 2.x has unfixed security bugs. New projects should avoid it.


There is a large amount of sample code under the flying-saucer-examples directory.

flying-saucer-core, flying-saucer-pdf, and flying-saucer-swt must be on the build path, as well as the SWT JAR for your OS.

org.xhtmlrenderer.demo.browser.BrowserStartup will start the browser demo.

Some good entry points (classes) are:

  • org.xhtmlrenderer.simple.XHTMLPanel
  • org.xhtmlrenderer.simple.PDFRenderer
  • org.xhtmlrenderer.simple.ImageRenderer


Ongoing discussions are carried out in our online discussion group.

Excerpt from the latest merge/release policy:

If you create a PR that can merge without conflicts, I'll merge it. I might ask for additional changes (or feedback from others), but I expect that will be extremely rare.

The basic contract is this: If you're still using Flying Saucer, need something changed, and are willing to do the work yourself, the change will be accepted and released.

Along that line, please also let me know if you need a release done right away. Otherwise I'll bundle up the changes and do a release every four to six months as long as it's required.

This is also the reason why Issues are currently deactivated on GitHub.


  • Openpdf


    Please let me know if I should change anything. I renamed the -pdf module into -pdf-openpdf. The dependend modules use this "new" one.

    opened by asturio 22
  • Resolves ClassCastException for grid layouts

    Resolves ClassCastException for grid layouts

    The Problem

    When running ITextRenderer.layout() on a grid formatted html file, you would get:

    java.lang.ClassCastException: org.xhtmlrenderer.render.BlockBox cannot be cast to org.xhtmlrenderer.newtable.TableBox

    A great example would be to tagsoup http://twitter.github.com/bootstrap/

    The Solution

    An extra check to block the exception from bubbling to the surface. This simple change resolves:

    • http://code.google.com/p/flying-saucer/issues/detail?id=144

    Thank you for a such a great library!

    opened by philcali 20
  • Border Radius Implementation

    Border Radius Implementation

    Heres is full border radius support. Known Issues that should be patched prior to a release are as follows:

    • Set px value under shorthand BORDER_RADIUS is not computed correctly for DPI
    • Declarations around the CSSName.BORDER_****_RADIUS should be cleaned up and re organized to be more logical and return consistant types to the BorderRadiusCorner class
    • BorderRadius sides are not automatically fixed when the total radius of one side excedes its width/height. This will need to be completed after the CSS parsing issues have been resolved. (you can observe this by setting border-radius: 100%, they should be normailzed to 50% because 1 side cannot have over 100%...).
    • Overflow: hidden doesnt not work properly, setClip needs to be called prior to drawing children of the Block Element.

    Let me know if you have any questions or things you would like me to change with the implementation. I had a very difficult time trying to figure out how to get the CSS parsing to work the way I wanted it to but I am sure you can figure it out easily.

    Note: I did most my testing using iText 2.17, additional testing should be done with Swing and iText5

    opened by nedjs 15
  • NaiveUserAgent and ITextUserAgent should not rely internally on java.net.URL to allow resource abstraction

    NaiveUserAgent and ITextUserAgent should not rely internally on java.net.URL to allow resource abstraction

    See https://code.google.com/p/flying-saucer/issues/detail?id=237 for details.

    opened by micw 8
  • PDF bookmarks from HTML outline – clean and polish

    PDF bookmarks from HTML outline – clean and polish

    Amends #103

    • Use separate values for "none" (no) bookmark but consider children, and "exclude" tree from outline;
    • Expand a bit on documentation;
    • Add automatic HTML outline with the iText 5 library, also.
    opened by stanio 8
  • Fix for Google Code Issue 231: Bold font emulation for PDF rendering causes black borders around each letter

    Fix for Google Code Issue 231: Bold font emulation for PDF rendering causes black borders around each letter

    As described in Google Code Issue 231, using bold font emulation causes a black border around the text.

    This was happening because the stroke colour wasn't getting set prior to rendering the text.

    opened by agibagib 7
  • Use display: block instead of display: table

    Use display: block instead of display: table

    Use display: block instead of display: table, display: table-row, or display: table-section in generated content.

    opened by pbrant 7
  • avoid extra calls to TransformerFactory.newInstance()

    avoid extra calls to TransformerFactory.newInstance()

    We found this to be a hot spot in profiling our application, and this change sped things up noticeably. It didn't break anything obvious, but we would appreciate any thoughts on whether this is a safe change. Thanks!

    opened by jerith666 7
  • add _pdfPageEvents to ItextRenderer

    add _pdfPageEvents to ItextRenderer

    ITextRenderer to allow pageEvents

    When rendering HTML to PDF using ITextRenderer there is no possibility to set the page events (such as header or footers) because the PdfWriter is build inside the createPDF method.

    Similarly to _pdfVersion and _pdfEncryption field, there should be a _pdfPageEvents field to set events on the PdfWriter before rendering.

    opened by rik86 6
  • Support for no page margin mode when html is converted to PDF

    Support for no page margin mode when html is converted to PDF

    Support for no page margin mode when html is converted to PDF

    opened by zhaokun-12 0
  • Openpdf


    Update OpenPDF to latest Version

    opened by asturio 2
  • Make VerifyGlyphExists compile using IntelliJ

    Make VerifyGlyphExists compile using IntelliJ


    • Add reference to org.w3c.dom in pom.
    • BorderPropertySet.java -- Organize imports (had compile issues without org.w3c.dom).
    • VerifyGlyphExists.java -- Compare line 100 (old) and line 110 (PR); the codepoint was always 0, which looks like a bug. Other updates modernize the syntax and apply IDE-recommended changes, including try-with-resources. This closes the opened font's file stream, which is technically another bug but one that would never affect the application in practice.
    • ITextFontResolver.java -- Organize imports.
    opened by DaveJarvis 0
  • test


    opened by msalaslo 0
  • Maven compiler plugin version

    Maven compiler plugin version

    Increase Maven Compiler Plugin version to prevent build failures on recent versions of Java and Maven.

    opened by DaveJarvis 0
  • Guard against race condition

    Guard against race condition

    Assign styleMap to local method variable (localMap) to avoid possibility of styleMap becoming null during method execution, otherwise resulting in an NPE.

    opened by DaveJarvis 1
  • Emphasis on contact

    Emphasis on contact

    Moved contact to a single location in the document, simplified some wording, updated link to discussion group.

    opened by DaveJarvis 0
  • Make CSSName.ALL_PROPERTIES non final and add a reload() static method to rebuild it

    Make CSSName.ALL_PROPERTIES non final and add a reload() static method to rebuild it

    I am the author of Icetone (https://github.com/rockfireredmoon/icetone), a UI toolkit for JMonkeyEngine (http://jmonkeyengine.org/) with its roots in a fork of a toolkit for the same engine, TonegodGUI.

    I started off by using Flying Saucer to provide an XHTML renderer for this toolkit, but soon realised that the CSS engine would make a great replacement for the limited XML based themes provided in TonegodGUI.

    This turned out REALLY well, but I do need to currently patch Flying Saucer to make CSSName.ALL_PROPERTIES non-final and provide a method to rebuild the array, as I have added quite a few of my own custom CSS tags to do things not covered by the standard ones. This PR makes that possible.

    This seems to have no ill effects on Flying Saucer, but it is obviously a bit hacky. Longer term, I would love to see the CSS engine separated from the core and usable on it's own with or without the XHTML rendering core. I will see if I can get together a separate pull request for this if this sounds valuable to you.

    On a side note, it would also be nice if some of the helper classes for creating CSSName objects were more visible, I have had to re-implement a lot of them when adding my CSS extensions because they are private.

    opened by rockfireredmoon 1
  • Fix behavior of :first pseudo selector on named pages

    Fix behavior of :first pseudo selector on named pages

    Currently, :first pseudo selector is working ONLY on very first PDF page. But according to https://www.w3.org/TR/css-page-3/#syntax-page-selector :first pseudo selector should be applied also on first page of named pages (sections):

    @page { ... }
    @page :left { ... }
    @page :right { ... }
    @page LandscapeTable { ... }
    @page CompanyLetterHead:first { ... } /*  identifier and pseudo page. */

    Problem is only with :first selector. :right and :left are working fine.

    Problem is described also here: https://stackoverflow.com/questions/36737431/flying-saucer-pdf-using-first-with-a-named-page

    Solution is keep track of current page number of actual named page. For example, if we are on named page "section1" then start counting pages of this named pages block. If pending page number == 1 and there is rule @page section1:first {...} it should apply. No matter what page number of whole PDF it is.

    opened by Gondy 1
  • docx output

    docx output

    This pull request is to see whether there is interest in adding docx output to flying saucer?

    By way of background, docx4j has provided XHTML to docx conversion based on a re-packaged flying saucer from late 2011. XHTML to docx seems to be a fairly common requirement.

    (I re-packaged FS back then when FS was dormant, and hadn't gotten around to seeing whether there was appetite for including docx capability in FS-proper. YellowfinBI then did the work to re-integrate it in FS, which has made this pull request possible).

    If there is enthusiasm for XHTML to docx as part of FS, I'd be happy to help clean up this pull request a bit.

    To actually convert XHTML to docx, you'd use https://github.com/plutext/docx4j-ImportXHTML/tree/FS2018 which has FS (and docx4j) as a dependency: https://github.com/plutext/docx4j-ImportXHTML/blob/FS2018/pom.xml#L298

    docx4j-ImportXHTML's codebase could also be moved here (flying-saucer-docx) if that were necessary/desirable.

    Looking forward to discussion/feedback, thanks! .. Jason

    opened by plutext 5
  • v9.1.21(Apr 21, 2021)

    cbb1425a49e3fd13e8c1417f6edd379403879001 Update for release 9.1.21 a738f43ef1a7f9f3f9fc71ea9d953677300857a7 Merge pull request #176 from kalnida1/master e5671a93f08d5a0cd7dedf890fcf84cae54ee842 Fix for CVE-2017-9096 828de14f7991350d069ed858ba4ed7bf63490313 Merge pull request #175 from ottobeli/patch-1 ec6823cc81a8f94e040b260205b0fd2421cdd7c7 Replicating the commit 3e47546

    Source code(tar.gz)
    Source code(zip)
  • v9.1.20(Jan 10, 2020)

    b730732 Update for 9.1.20 release 46bb75b Merge pull request #167 from maltalex/master 59c16c2 replaced javax.xml.bind.DatatypeConverter with java.util.Base64

    Source code(tar.gz)
    Source code(zip)
  • v9.1.19(Nov 13, 2019)

    a22f47d Merge pull request #166 from flyingsaucerproject/dependabot/maven/flying-saucer-pdf/bouncycastle.version-1.64 c7c09aa Bump bouncycastle.version from 1.60 to 1.64 in /flying-saucer-pdf dbfe5db Update for 9.1.19 release ce73e8e Merge pull request #161 from andreasrosdal/master a90b7d4 Merge pull request #163 from KalhariL/textFormFieldFix 9e27dda Merge pull request #164 from netheosgithub/fix-relative-links 9d9829c Merge pull request #165 from dmarth/fix/absolute-positioning 06ea987 copy list of children 65bf173 Add support for relative links to filesystem resources 47c1de6 1.3.11 10ab906 Added maxlength and multiline to text form field 89c6c5d 1.3.8 967992e 1.3.3 25e0451 1.3.2. c0ff4a7 1.3.0. 7f89dd1 Update to OpenPDF 1.2.19. ccfadb6 Merge pull request #157 from andreasrosdal/master a02d576 Merge pull request #159 from peterm0x/master f916411 Update pom.xml dcdc985 Update pom.xml 62f46a9 Update pom.xml 2568f62 fixes issue with outline generation 8a0cacb Update pom.xml b9001c1 Update pom.xml d85d520 Update pom.xml 3870571 Merge pull request #158 from datb-com/master dbdc265 C251337 flyingsaucer upgrade 85dd7d3 Update pom.xml 4615052 Update pom.xml a026121 Update to OpenPDF 1.2.10.

    Source code(tar.gz)
    Source code(zip)
  • v9.1.18(Mar 5, 2019)

    62d6bbd Update for 9.1.18 release f583af0 Fix box sizing cba45a6 Update for 9.1.17 release 1d3f1ec Merge pull request #155 from andxor/master e4b1490 Merge pull request #154 from OpenGrabeso/fixRoundCorners 97d2a53 Merge pull request #153 from OpenGrabeso/prDispose f0b65dd Merge pull request #151 from andreasrosdal/master 59d9f13 Merge pull request #156 from philipparndt/table-break-fix ee5bc71 Fixed unnecessary line break in tables 302183b Allow border collapse even on paginated tables. 4e65863 Rounded corners without borders added twice into the path because of bad starting angle. This has caused significant performance issues in awt Area constructor sometimes. 81298a0 Add dispose for each create. 734be72 Update to OpenPDF 1.2.5. 225fc5b Update for 9.1.16 release 7230698 Added support for base64 encoded font faces. 83d6e3b Merge pull request #145 from Gaboso/readme_update b28a9bf Merge pull request #149 from andreasrosdal/master 3654d9b Update to OpenPDF 1.2.3. 8c4f805 Update to OpenPDF 1.2.2. c5c8225 Update license badge to LGPL-2.1 3d007f8 Merge branch 'master' of https://github.com/flyingsaucerproject/flyingsaucer into readme_update 8f2eac4 Add version and license badges

    Source code(tar.gz)
    Source code(zip)
  • v9.1.15(Aug 9, 2018)

    080e898 Update for v9.1.15 a6aedca Merge pull request #147 from andreasrosdal/master b9f3402 Merge pull request #146 from pixilation/master 9509e5c Merge pull request #144 from Gaboso/master 7f360c2 Update to OpenPDF 1.2.0 and Bouncy Castle 1.60. 8e6b484 Fixed italic emulation applying to oblique fonts in itext5 120de9d Fixed italic emulation applying to oblique fonts d7ea948 Refactoring in TrueTypeUtil

    Source code(tar.gz)
    Source code(zip)
  • v9.1.14(Jul 7, 2018)

    bb87a5c Update for v9.1.14 7759d79 Merge pull request #141 from Gaboso/master 90b5ec3 Merge pull request #142 from KlausRe/master e8a5b35 Merge pull request #143 from balazs-zsoldos/support_box-sizing_border-box 2122857 Support box-sizing border-box 4ab1440 Avoid artifacts due to missing antialiasing ed6eff6 Refactoring in Logs

    Source code(tar.gz)
    Source code(zip)
  • v9.1.13(May 15, 2018)

    e0d04b7 Update for v9.1.13 a317ac7 Merge pull request #140 from milkotodorov/master d3dd89c Bump-up bouncycastle dep. version - CVE-2015-7940

    Source code(tar.gz)
    Source code(zip)
  • v9.1.12(Feb 19, 2018)

    3cf6b4e Update for 9.1.12 429362f Merge pull request #139 from angelozerr/patch-1 bdd0284 Fix NPE when contentLimitContainer is null a8aa22c Update README

    Source code(tar.gz)
    Source code(zip)
  • v9.1.9(Nov 8, 2017)

    9fa556d Update for release b78387b Merge pull request #133 from adamovic-cw/master 4835960 Make default constants public. 41e3463 Remove printStackTrace() call.

    Source code(tar.gz)
    Source code(zip)
  • v9.1.8(Nov 7, 2017)

    afca924 Revert "Process language attribute" ca8f96d Update for release 8dea844 Merge pull request #132 from gpgekko/patch-1 4b43748 Merge pull request #131 from jodersky/page-numbering 5d12eeb Merge pull request #129 from brucewinger/cache-doBreakText 91ee687 Process language attribute 0d1bb7d Extract page number from image src URIs f6449ad cache previous width and position when calculate currentWidth 66e16bf Next development version

    Source code(tar.gz)
    Source code(zip)
  • v9.1.6(Sep 10, 2017)

    368e3fc Update for release 009a774 Update version of iText 5 2a5aa13 Merge pull request #126 from matthias-g/mailto-urls 917a8df Create links also for urls starting with 'mailto:' 6edf8f7 Next development version

    Source code(tar.gz)
    Source code(zip)
  • v9.1.7(Sep 10, 2017)

    f350d85 Update for release 316dc7e Merge branch 'aksndr-master' 3370dd7 Revert wildcard imports 60a028d Merge branch 'master' of https://github.com/aksndr/flyingsaucer into aksndr-master 25805ee Merge pull request #127 from liias/master 18787d1 Update pom.xml 56edd63 Update pom.xml 90b308a Added methods getting data from bytes array and returning resuls as the bytes array 5d9907b Throw exception if inline element lbContext.isFinished() is never true 99fdcac Update EndlessLoopTest_wordwrap.html example to be more clear if viewing pdf 1742d19 Potential fix for word-wrapping endless loop issue e29d589 Add failing test for endless loop. b889902 Next development version

    Source code(tar.gz)
    Source code(zip)
  • v9.1.5(Mar 28, 2017)

    f4bfac3 Update for release 4e92ab2 Merge pull request #122 from huxi/117part2 91bad7d Fixes NPE mentioned in #117 comments. 8fc7c95 Next development release

    Source code(tar.gz)
    Source code(zip)
  • v9.1.4(Mar 12, 2017)

    a05031c Update for release 75ef068 Merge pull request #121 from huxi/YetAnotherRootPanelNPE ab72c6c locking down enclosingScrollPane 9078cf8 documentListeners cleanup. be33801 Move fields to top of class. c0519ae Simplify UI element handling. 3aff302 More null handling. 72d6baf Next development version

    Source code(tar.gz)
    Source code(zip)
  • v9.1.3(Mar 10, 2017)

    86439f3 Update for release dbbf71c Merge pull request #120 from huxi/MavenWarnings e1ebba5 Merge pull request #119 from huxi/RootPanelNPE 8846742 Added maven-deploy-plugin version. 6db2426 Added maven-jar-plugin version. f653aad Fixes NPE introduced in 214bd386a50b2158e724d6d1b. e201ffb Update for next development release

    Source code(tar.gz)
    Source code(zip)
  • v9.1.2(Mar 9, 2017)

    8b9df30 Update for release and merge Bintray packages 34ae468 Merge pull request #118 from huxi/ReadmeUpdate 6f4bb95 Updated Links and added merge/release policy. e41b4a8 Merge pull request #117 from huxi/NPE-fix fb7d310 Merge pull request #116 from huxi/resolveUriRegressionFix b089fd1 Element can be null in getLang calls. 61ed26e Whitespace fix. Spaces instead of tabs. 6de96b7 Fixes testJarFileUriResolve regression. f26c133 Removed unused method. 1721208 Removed unused import. fad9c08 Added failing test case. cb8fc69 Cleanup of NaiveUserAgentTest 944e3a3 Move NaiveUserAgent test to proper package. 795f89e Merge pull request #115 from skjolber/org_bouncycastle_dependency_move fcf92c7 Move iText dependencies to renamed versions c25e33b Merge pull request #114 from codeborne/fix-entity-reference-support e28ab6b Fix NPE when special symbols ('&', '>') is at the end of td 8346ebb Merge pull request #113 from andreasrosdal/master eadb3f0 Update pom.xml. 681301d If openpdf profile is selected, then build flying-saucer-pdf instead. 61b2cac Add junit to OpenPDF profile. 52d4844 Add maven profiles which have OpenPDF as dependency in addition to iText. OpenPDF has a LGPL and MPL open source license. a8efc68 Merge pull request #112 from sdumitriu/patch-1 394ddf6 Updated README.md 19e6944 Merge pull request #111 from LZaruba/master.word-wrap e569db6 Added Non-Break-Spaces concept 4fdceb4 Fixed license headers bf7c1d5 Added new module containing Apache FOP implementation of the word-break capability e49a880 Implemented word wrapping capability de29829 Merge pull request #110 from codeborne/add-entity-reference-support e0a9c36 returns iterator only for DocumentTraversal instances so that other parsers (like Shani Xml Parser) do not fail with ClassCastException ff6b2e8 add entity reference nodes handling (needed for '&', '<' etc. rendering) b7dccd6 Merge pull request #109 from stanio/xml-reader c598625 Allow configuring "xr.load.ignore-element-content-whitespace" again 25d4b7c Use SAX parser as main way of loading documents c7cd382 Break internal implementation into more specialized units d6ffdc4 Merge pull request #107 from stanio/parser-pool c9a8b3b Avoid synchronizing new parser creation on the factory 368e88f Allow configuring 'ignoringElementContentWhitespace' of the parser factory 8db0c42 Reuse DocumentBuilderFactory instance for spawning new parsers 557c06c Replace ThreadLocal cache with simple object pool f47b990 Merge pull request #105 from stanio/html5-doctype 19b962f Enable parsing HTML5 doctype documents which use HTML entities 4520fc1 Next development version

    Source code(tar.gz)
    Source code(zip)
  • 9.1.1(Nov 26, 2016)

    bfffbe4 Update for release 1c5dd1d Update distributionManagement for OSGI artifact a0ba5f1 Merge pull request #104 from stanio/html-outline b702730 Add automatic HTML outline with the iText5 library, also d6eda87 Add license file comment; Clean and polish 19b7f98 Merge pull request #101 from trohrberg/add_osgi_support 3fb03d7 Merge pull request #103 from stanio/master 39cfff1 Create bookmarks from HTML outline automatically bc1c33b Merge pull request #102 from stanio/master dc6a75c Always clone images returned from cache 8e1c7f7 [add_osgi_support] Adding OSGi support 9b83c56 Merge pull request #45 from mpasture/master d68f357 Merge pull request #100 from stanio/master 1a886b4 Allow configuring ITextUserAgent image cache capacity 600b692 Cache data: URI images c9df4cf Merge pull request #99 from stanio/master d7aec72 Cache and reuse parser instances ce43d67 Clean up createXMLResource from TrAX source 0290ea9 Adjust indentation 0e54081 Clean up createXMLResource from SAX input source 61a82f8 ... or set it up already in FSEntityResolver (?) a7267f2 Ensure no external entities get loaded e6104cd add support for PDF/A

    Source code(tar.gz)
    Source code(zip)
  • 9.1.0(Oct 30, 2016)

    9d15645 Update for release b2ef06a Merge pull request #48 from micahhainline/fix_anchors 0a03f0c Merge pull request #57 from anu20890/master 3d0e179 Merge pull request #72 from IT-Tecture/stream-from-redirected-conn 3adfe30 Merge pull request #74 from pjahn87/master 6e75a04 Merge pull request #91 from avinash10584/master 614e932 Merge pull request #88 from rafortis/master 3f99400 Merge pull request #56 from micw/master ee37b0a Merge pull request #89 from Immortalin/master f7b4096 Merge pull request #94 from thiagoarrais/dynamic-height 89eadfd Merge pull request #95 from vmichaud/master 3954014 Merge pull request #90 from grahamhar/master 9bfd65c Merge pull request #96 from jklingst/swt-output-device-nullcheck-bugfix 15865ad Merge pull request #97 from jklingst/stylesheet-factory-charset-name 36bad23 Merge pull request #98 from lillesand/master 9140a7a Aggressively disable external entities 7c81f1d Update xhtmlrenderer.conf 76508d9 Fix indentation a135c3c Allow specifying the charset name used for reading stylesheets 98063e4 Null check in SWTOutputDevice.setStroke on BasicStroke dash array e6d84b3 Table row rendering improvement : Better support of border-radius applied on a . 6a9ec58 Merge branch 'master' of https://github.com/vmichaud/flyingsaucer 6ef439b Merge pull request #1 from flyingsaucerproject/master 8abe0d1 Fix bug when using text-align:justify with
    tags. 6b36350 Allows dynamic height rendering from Document 854e182 Update for next development version f764640 Update version for release 8d01ff5 Merge pull request #92 from openwide-java/border-radius-with-zero-width-border-fix 2002cd9 Bugfix for the ClassCastException when a box has border-radius but the border has zero width eea8598 Test for when a box has border-radius but the border has zero width (=> ClassCastException) dd5510c Fix for wrapping on div as seen on chrome and firefox a08a916 Revert "Added files via upload" 97b046f Added files via upload 3d46e93 Remove stacktrace e8298ff Update README.md d18ca67 Rename README to README.md 3e47546 Add fix on PDF conversion of a HTML form hidden field with long values(>127 bytes) 7bf5da9 Merge pull request #87 from rafortis/master 5a60527 fix bug on CSSParser while processing escaped backslashes
    d10728c [maven-release-plugin] prepare for next development iteration 304de89 Added basic timeout handling to ITextRenderer due to missing interrupt handling a9bcbd2 Check if the instance of HttpURLConnection is allowed to follow redirects. 975106d Refactor the opening of a input stream to handle redirection with HttpURLConnection. f91f039 Extract open stream to extend workflow. bf58be0 Avoid change of provided parameter 'uri'. It is a bad practice to change input parameters. 055a8fe Auto scale width e21fbd4 ITextRenderer: detect "PDF-Images" using the first few bytes of the streaminstead of relying on the uri's path name. e1df2c4 Fixed an issue in which pdf links that were rendering as floating blocks would be duplicated on pages other than the page in which they should appear.

    Source code(tar.gz)
    Source code(zip)
Extract tables from PDF files

tabula-java tabula-java is a library for extracting tables from PDF files — it is the table extraction engine that powers Tabula (repo). You can use t

Tabula 1.3k Sep 6, 2021
Java reporting library for creating dynamic report designs at runtime

Master Development Dynamic Reports DynamicReports is an open source Java reporting library based on JasperReports. It allows to create dynamic report

Dynamic Reports 144 Sep 10, 2021
Extract text from a PDF (pdf to text). Api for PHP/JS/Python and others.

Extract text from a PDF (pdf to text). API in docker. Why did we create this project? In the Laravel project, it was necessary to extract texts from l

dotcode.moscow 3 Jun 7, 2021