当前位置: 首页 > 面试题库 >

Java是否存在可以创建丰富的Word文档的Java API?

孔光赫
2023-03-14
问题内容

我有一个新的应用程序,我将在其中生成包含表,图形,目录和文本的Word文档的地方工作。有什么好的API可以使用呢?你如何确定它支持图形,目录和表?使用它们时有哪些隐藏的陷阱?

一些说明:

  • 我无法输出PDF,他们需要Word文档。
  • 他们使用的是MS Word 2003(或2007),而不是OpenOffice
  • 应用程序正在* nix应用服务器上运行
    如果可以从模板文档开始,然后在表格,图形等中填充一些空格,那将是很好的。

编辑:下面有几个好的答案,就我目前的情况而言,每个答案都有自己的缺点。很难从他们那里选择一个“最终答案”。认为我会保持开放状态,并希望能创建更好的解决方案。

编辑:OpenOffice UNO项目似乎与我要求的最接近。虽然POI当然是更主流的,但对于我想要的东西来说还太不成熟。


问题答案:

OpenOffice UNO还允许您构建与MS-Office兼容的图表,电子表格,演示文稿等。我们能够动态构建复杂的Word文档,包括图表和表格。

我们通过使用带有书签插入的模板MS-Word文档(该软件在其中插入了内容)简化了过程,但是,您可以完全从头开始构建文档。目标是让该软件生成报告文档,最终用户可以共享该报告文档,并对其进行进一步调整,然后再将其转换为PDF以进行最终交付和存档。

如果希望用户使用OpenOffice而不是MS-Office,则可以选择以OpenOffice格式生成文档。在我们的案例中,用户希望使用MS-Office工具。

UNO包含在OpenOffice套件中。我们只需将Java应用程序链接到套件中与UNO相关的库即可。提供了一个OpenOffice软件开发工具包(SDK),其中包含示例应用程序和《 UNO开发人员指南》。

我尚未调查最新的OpenOffice UNO是否可以生成MS-Office 2007 Open XML文档格式。

关于OpenOffice UNO的重要事项是:

这是免费软件
它支持多种语言(例如,Visual Basic,Java,C ++等)。
它与平台无关(Windows,Linux,Unix等)。



 类似资料:
  • 问题内容: 我想使用模板创建Word文档,替换一些变量(字段)并将其另存为新的Word文档。 我当时在考虑使用Apache POI,http://poi.apache.org/是否最适合此目的?您可以分享您的印象吗? 问题答案: 我以前使用过POI,并且肯定可以生成Word文档。但是魔鬼在细节上。 Word具有成千上万个功能:您可以将编号为#13的带有负缩进的列表放到另一个表(该表本身是项目符号列

  • 我使用数据库中的数据获取默认表模型,我想以doc word打印为表。如何实现。请参阅下面的代码:

  • 是否可以在单独的项目中为我的ASP. Net Web API生成Swagger留档? 我在Swagger留档应该去的地方创建了一个空项目。在API项目中引用了Swagger项目,但不起作用。比API项目像外部程序集一样加载。控制器是可访问的,但没有生成留档。 然后尝试使用自动生成的XML文档,只是想看看它是否会创建任何内容,但没有结果。 在这之后,尝试在一个招摇过市的文档中包含多个API,在一个招

  • 问题内容: 例如,假设我想“提取” 为三个单独的变量,例如: 我该怎么做,而忽略了 “为什么要这么做呢?” 您可能会被问到这个问题。 之前已经多次问过类似的问题,但是从未给出真正的答案,因为OP真正需要的是使用不同的方法。很好,但这有可能吗? 我看过反射,似乎没有任何方法可以使我甚至向实例添加额外的字段,更不用说动态创建本地了。 问题答案: 是否可以在Java运行时创建变量? 简单回答是不。 Ja

  • Enterprise Architect提供了一个方便的特性,可以从外部源生成UML工件(或术语表条目),这些工件可以作为RTF文件导入到项目中。 这些RTF可以作为“链接文档”或“UML文档工件”附加到现有项目(使用“工件”模型实体的< >原型)。第36页对此进行了描述:http://www.sparxsystems.com/downloads/whitepapers/requirements_

  • 问题内容: 我正在尝试扩展库以进行集成,并通过将config设置为自动(可移植)来实现,这意味着以编程方式添加元素。(我知道可以通过Hibernate 或EclipseLInk来实现,但是- 可移植性)。我也想避免仅用于此单一目的。 我可以动态创建一个,并用指定包中的元素填充它(通过Reflections库)。当我尝试将其提供给提供程序时,问题就开始了。我能想到的唯一方法是设置一个,但我想不出什么