Framework to produce documents in different formats starting from an XML document meta model.
The Core library (fj-doc-base) is all you need to start, even though typically you will use at least :
- fj-doc-base
- fj-doc-freemarker
- One or more type handlers modules
Useful resources : github pages documentation | project home page | docgen home | release notes | Doc XSD Configuration Reference | freemarker-doc-process-config XSD Configuration Reference | Venus Doc Meta Informations reference | Venus Guides
A quick start is available in module fj-doc-sample
There are five kinds of components (each components README.md contains module status) :
- Core library (fj-doc-base) (contains a simple renderer for Markdowm BASIC and Markdown EXT)
- Json extension (fj-doc-base-json) (allow for using json as document generator instead of standard xml generator) [since 0.7.0]
- Yaml extension (fj-doc-base-yaml) (allow for using yaml as document generator instead of standard xml generator) [since 0.7.0]
- Doc format
- FreeMarker template, (fj-doc-freemarker) (contains a simple renderer for HTML and HTML FRAGMENT)
- Apache POI 4 Module (fj-doc-mod-poi) (XLS/XLSX)
- Apache POI 5 Module (fj-doc-mod-poi5) (XLS/XLSX) [requires java 11+, since 1.3.2]
- Apache FOP Module (fj-doc-mod-fop) (PDF/FO)
- OpenCSV Module (fj-doc-mod-opencsv) (CSV)
- MD BASIC - (fj-doc-base) output as Markdown basic language
- MD EXT - (fj-doc-base) output as Markdown extended (include tables) language
- HTML - (fj-doc-freemarker) output as html
- HTML FRAGMENT - (fj-doc-freemarker) output as html body content only (no html, head or body tags)
- XLS - (fj-doc-mod-poi) output as Microsoft XLS using Apache POI 4
- XLSX - (fj-doc-mod-poi) output as Microsoft XLSX using Apache POI 4
- XLS - (fj-doc-mod-poi5) output as Microsoft XLS using Apache POI 5
- XLSX - (fj-doc-mod-poi5) output as Microsoft XLSX using Apache POI 5
- PDF - (fj-doc-mod-fop) - output as PDF using Apache FOP
- FO - (fj-doc-mod-fop) - output as FO using Apache FOP
- CSV - (fj-doc-mod-opencsv) - output as CSV using OpenCSV
- Simple table (fj-doc-lib-singletable) - offers a simple API for creating a document made of a table.
- XSD Autodoc (fj-doc-lib-autodoc) - offers a simple api for documenting the Venus library (to a limited extent some features can be used on any xsd).
- Doc type validation (fj-doc-val) - simple utilities for validating file type.
Basically the same as type handlers but based on libraries non available on Maven Repository Central (es. PDFLIB).
You can find in them in a dedicated repository fj-doc-ext
- Apache PdfBox Renderer (PDF)(fj-doc-mod-pdfbox) (incubator since version 0.5.0)
- JXL Renderer (XLS)(fj-doc-mod-jxl) (deprecated as jexcelapi is no longer mantained, may be used 'AS IS') (deprecated since version 0.5.0)
- Itext 2.X Renderer (PDF/RTF/HTML)(fj-doc-mod-jxl) (deprecated as IText 2.1.X is no longer mantained, may be used 'AS IS') (deprecated since version 0.5.0)
- Java EE extension (fj-doc-ent)) (deprecated as not the module fj-mod-freemarker provided mostly the same features, but in a standalone mode) (deprecated since version 0.5.0)
Beginning with version 1.4.0-rc.001, GraalVM metadata started to be added (reflect-config.json and resources-config.json). Initially only the fj-doc-base and fj-doc-freemarker have full support. Actual support for other module will be added as soon as possible, but somtimes is dependant on underlying depandancies support (for example Apache FOP for fj-doc-mod-fop). It is possible to check the current status on the module documentation, in the section native support
About javadoc
Javadoc are far from being complete, but you can find latest version at https://www.fugerit.org
Note that, being an open source project hosted on maven central, you can find release javadoc on javadoc.io
Special thanks
Special thanks to JetBrains for accepting this project in the Licenses for Open Source Development - Community Support program.
Special thanks to Sonar Cloud too for their code review platform.