【问题标题】:Is there a way (in java) to generate human editable Microsoft Word documents from human readable template?有没有办法(在 java 中)从人类可读的模板生成人类可编辑的 Microsoft Word 文档?
【发布时间】:2015-05-19 13:26:33
【问题描述】:

我正在为我的 Java 应用程序寻找一种使用某种模板生成 Word 文档的方法(文档的数据将由应用程序提供) 以下是要求: - 对于非开发人员,模板应该是可编辑的。使用适当的工具创建 Jasper 模板或使用某种模板语言编辑 Word 文档是合规的。要求编辑文档的xml文件不是 - 结果应该易于人类编辑,使用 Microsoft Word。例如,Jasper 或 Birt 生成的文档不合规,因为表格布局阻止了任何简单的编辑。

目前,我查看了以下解决方案,没有找到符合这两个要求的解决方案:

  • 贾斯珀。生成的文档不容易编辑
  • 出生。同样的问题
  • 使用模板马达(速度、Freemarker)生成 xml。我不能要求最终客户编辑这种 XML 文件...

【问题讨论】:

    标签: java templates report reporting


    【解决方案1】:

    您可以查看 Templater。它有很好的demo page

    免责声明:我是作者。

    【讨论】:

    • 感谢分享。 Templater 似乎正是我所需要的,而且没有超出预算。测试完我会回来的。
    【解决方案2】:

    LibreOffice

    LibreOffice 是类似于 Microsoft Office 的应用套件的开源实现。除了支持标准化的OpenDocument格式外,它还可以读写Microsoft Office格式。

    LibreOffice 提供Java API。因此,您可以通过模板以编程方式创建文档。

    过去我们做过类似的事情,使用搜索和替换和文档变量修改文档。

    Apache Poi

    Apache Poi 是一个用于读写 Microsoft Office 兼容文档的开源库。

    我不知道它的细节,但你可以看看。

    【讨论】:

    • 感谢您的回复。我在 Java 中使用 Word 文档没有问题(我已经使用过 Apache Poi),但它是模板引擎部分,这对我来说很重要。
    【解决方案3】:

    JODReports(开源)和Docmosis(商业)旨在使用普通/人工管理的文档作为模板(Word、OpenOffice 等),合并您的数据并返回可编辑的文档、PDF 等。请注意我为Docmosis工作。

    JODReports 和 Docmosis 都提供 Java API。

    如果您对直接自动化 Open Office 或 Libre Office 感兴趣(如 Basil 的回答中所述),this blog about converting Doc to Pdf 将为您提供快速入门:

    1. 将 doc 文件加载为模板
    2. 搜索和替换
    3. 导出到文件(示例中为 pdf)

    要将输出格式更改为 Doc 而不是 PDF:

     propertyValues[1].Value = "writer_pdf_Export";
    

     propertyValues[1].Value = "MS Word 97";
    

    希望对你有帮助。

    【讨论】:

    • 感谢您的信息。我去看看,但乍一看,Docmosis 似乎超出预算,而且 JODReport 也有一段时间没有更新了。我希望它可以使用...
    【解决方案4】:

    也在寻找这种解决方案,我找到了XDocReport,包括example of a table。我会试试看的。

    【讨论】:

      猜你喜欢
      • 2011-10-12
      • 2017-09-06
      • 2023-04-08
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2013-06-09
      相关资源
      最近更新 更多