Mícéal Gallagher in Project minutes

DOCX4J Template Engine - A library to create DOCX template based reports

The DOCX4J Template Engine. This project was a labour of love brought about by a labour of frustration. In every software development position I’ve worked in, I’ve had to create reports. Sometime as CSV, sometimes RTF and more than often in DOCX. Rather than writing report specific code I decided this time I’d write report agnostic code. The premise; a template DOCX file would be created. The template would contain variables like %%individual_forename%%, the template would be passed to the engine with the variable names and the values that should replace them. And that’s it! This Java based library can also bind entity lists to a table in your template. Using reflection, values can be bound to each table column as specified in the template. Variables can be specified as different types. If you have a date variable then you can specify how you’d like the date formatted. If you want to specify a map of values to reference you can do that as well. Even hyperlink formatting. You can get the code at GitHub along with working examples.