我正在寻找一种方法让我的Java应用程序使用某种模板生成Word文档(文档的数据将由应用程序提供) 以下是要求: - 模板应该可以为非开发人员编辑。使用适当的工具创建Jasper模板或使用某种模板语言编辑Word文档是合规的。要求编辑文档的xml文件不是 - 使用Microsoft Word可以轻松地为人类编辑结果。例如,Jasper或Birt生成的文档不符合要求,因为表格布局阻止了任何简单版本。
目前,我查看了以下解决方案,找不到符合这两个要求的人:
答案 0 :(得分:2)
你可以查看Templater。它非常好demo page。
Disclamer:我是作者。
答案 1 :(得分:1)
LibreOffice是类似于Microsoft Office的应用程序套件的开源实现。除了支持标准化的OpenDocument格式外,它还可以读取和写入Microsoft Office格式。
LibreOffice提供Java API。因此,您可以通过编程方式从模板创建文档。
过去我们做过类似的事情,用搜索和替换以及文档变量修改文档。
Apache Poi是一个用于读取和编写Microsoft Office兼容文档的开源库。
我不知道它的细节,但你可以看看。
答案 2 :(得分:1)
JODReports(开源)和Docmosis(商业)旨在使用普通/人为管理的文档作为模板(Word,OpenOffice等),合并您的数据并返回可编辑的文档, PDF等。请注意我为Docmosis工作。
JODReports和Docmosis都提供了Java API。
如果您对直接自动化Open Office或Libre Office感兴趣(如Basil的答案中所述),this blog about converting Doc to Pdf将为您提供快速入门:
要将输出格式更改为Doc而不是PDF:
propertyValues[1].Value = "writer_pdf_Export";
到
propertyValues[1].Value = "MS Word 97";
我希望有所帮助。
答案 3 :(得分:0)
也在搜索此类解决方案,我找到XDocReport,包括example of a table。我试试看。