danfickle / neoflyingsaucer

[Deprecated - Please use openhtmltopdf at link] An attempt to modernize flyingsaucer, the HTML and CSS 2.1 renderer in pure Java

Home Page:https://github.com/danfickle/openhtmltopdf

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status Coverage Status

NEW : TRY ONLINE!

neoFlyingSaucer can now be experimented with online at the neoFlyingSaucer HTML to PDF or Image Sandbox. There are some limitations for security purposes such as no remote resources and a limit of 20,000 characters. Please remember to file issues for any problems you may encounter.

OVERVIEW

neoFlying Saucer is a pure-Java library for rendering arbitrary HTML using CSS 2.1 (and some CSS3) for layout and formatting, outputting to PDF and images.

SCOPE OF THIS PROJECT

To provide the best open-source static, paged HTML renderer around. Interactive features have and will be removed. We plan to target Java 6.

TODO

  • Make case insensitive and locale insensitive.
  • Update LICENSE.
  • Update Samples.
  • Support Bootstrap styles.
  • Also see issues.

DONE

  • Make cancelable/interrupted support.
  • Lots more tests.
  • Replace iText with a new PDF library (Apache PDF-BOX).
  • Media query support.
  • Replace java.util logging with slf4j.
  • Redirects and gzip response encoding.
  • Replace XML parser with Jsoup HTML5 parser.
  • Use a better text-breaker (Java's BreakIterator) to handle more languages.
  • CSS3 Support
    • border-radius (J2D, PDF)
    • linear-gradient (J2D, PDF)
    • opacity (J2D, PDF)
    • rgba (J2D, PDF)
  • Use external libraries for non-core functionality such as commons codec for base64 and Scalr for image scaling.
  • Move to Java 1.6 including use of generic types, enums, etc.
  • Remove SWT, itext5 and docbook support.
  • Move to latest dependencies.
  • Delete extra files, jars, etc.

CURRENT LIMITATIONS

  • No unicode font support. Only Win-Ansi encoding can be used. This is a severe limitation but will be fixed when PDF-BOX 2 is released shortly with unicode font support. See issue #41
  • No PDF forms. See issue #43
  • No right-to-left text support. See issue #44
  • No documentation. See issues #48 and #49

BROWSER

  1. Fork and Clone the code.
  2. Set up Eclispe project with 'mvn eclipse:eclipse' command.
  3. Import project in Eclipse with File -> Import -> Existing project.
  4. Take the browser for a spin at: /neo-flying-saucer-browser/src/main/java/com/github/neoflyingsaucer/browser/BrowserMain.java

HOW TO HELP

See issues.

LICENSE

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 in our distributions and in our source tree.

PDF TUTORIALS

As a way of getting my head around the PDF format internal details, I have started to write tutorials about the inner workings of the PDF format. They may be useful to those working with the PDF format.

RELATED PROJECTS

About

[Deprecated - Please use openhtmltopdf at link] An attempt to modernize flyingsaucer, the HTML and CSS 2.1 renderer in pure Java

https://github.com/danfickle/openhtmltopdf

License:Other


Languages

Language:Java 61.8%Language:HTML 37.4%Language:CSS 0.6%Language:Lex 0.2%Language:Batchfile 0.0%