代码之家  ›  专栏  ›  技术社区  ›  billjamesdev

是否有可以创建富Word文档的JavaAPI?[闭门]

  •  108
  • billjamesdev  · 技术社区  · 16 年前

    我有一个新的应用程序,我将在那里工作,我必须生成一个Word文档,其中包含表格、图表、目录和文本。用于此目的的好API是什么?您有多确定它支持图形、TOC和表格?在使用它们的过程中有哪些隐藏的陷阱?

    一些澄清:

    • 我无法输出PDF,他们需要Word文档。
    • 他们使用的是MS Word 2003(或2007),而不是OpenOffice
    • 应用程序正在*nix应用程序服务器上运行

    编辑:下面有几个很好的答案,就我目前的情况而言,每个答案都有自己的缺点。很难从他们身上找到“最终答案”。我想我会保持开放,希望能创造出更好的解决方案。

    16 回复  |  直到 6 年前
        1
  •  56
  •   Lucky    10 年前

    2007年,我的项目成功地使用了OpenOffice.org的 Universal Network Objects (UNO)接口,以编程方式从Java Web应用程序(Struts/JSP框架)生成与MS Word兼容的文档(*.doc)以及相应的PDF文档。

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

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

    OpenOffice Software Development Kit (SDK)包含示例应用程序和UNO开发者指南。

    OpenOffice UNO的重要内容包括:

    1. 这是免费软件
    2. 它支持多种语言(例如Visual Basic、java、C++和其他语言)。
    3. 它是独立于平台的(Windows、Linux、Unix等)。

    以下是一些有用的网站:

        2
  •  30
  •   Jorge Ferreira    16 年前

    Apache POI 我能胜任这项工作。根据您的目标用途,HWPF仍处于早期开发阶段,这可能会导致一个问题。

    HWPF 编写Microsoft Word 97(-XP) 使用(仅)Java的文档。

        3
  •  9
  •   Sai Kishore Omnaest    6 年前

    你可以用这个: http://code.google.com/p/java2word

    我实现了这个名为Java2Word的API。只需几行代码,就可以生成一个Microsoft Word文档。

    IDocument myDoc = new Document2004();
    myDoc.getBody().addEle(new Heading1("Heading01"));
    myDoc.getBody().addEle(new Paragraph("This is a paragraph...")
    

    这里有一些如何使用的例子。基本上你需要一个jar文件。

    *我写这篇文章是因为我们在一个项目中有一个真正的必要性。更多信息请访问我的博客:

    http://leonardo-pinho.blogspot.com/2010/07/java2word-word-document-generator-from.html

    干杯 利奥纳多

    :链接中的项目已移动到 https://github.com/leonardoanalista/java2word

        4
  •  5
  •   romeok    15 年前

    试试Aspose.Words for Java,它可以在安装Java的任何操作系统上运行。

    如果您需要MS Word输出格式,它会将文档输出为DOC、DOCX或RTF。所有这些都得到了同样好的支持。

    您可以使用Aspose.Words插入TOC字段,但从今天起,在Microsoft Word中打开文档时,TOC字段将需要字段更新。然而,我们将在2010年初发布对TOC领域的全面支持。例如,它将像Word一样构建完整的TOC。

    我是Aspose.Words团队的成员。

        5
  •  4
  •   Joshua Born    12 年前

        6
  •  4
  •   Seki    12 年前

    尝试 Aspose.Words

    Words for Java是一个高级(商业)Java类库,使您能够直接在Java应用程序中执行大量文档处理任务。

    WordsforJava支持DOC、OOXML、RTF、HTML和OpenDocument格式。使用Aspose.Words,您可以在不使用Microsoft Word的情况下生成、修改和转换文档。

        7
  •  3
  •   tvanfosson    16 年前

    Aspose.Words 在.NET中进行邮件合并。我相信他们也有Java版本。

        8
  •  2
  •   Gulzar Nazim    16 年前

    您可以使用Java COM桥接器,如 JACOB . 若它来自客户端,另一个选择是使用Javascript。

        10
  •  1
  •   JasonPlutext    16 年前

    docx4j 或poi,两者都是ASL v2

    @wondersofcomputing:iText实际上是免费的开源软件

        11
  •  1
  •   cam2574    15 年前

    文字

    如果您需要文档文件,可以致电 阿比沃德 (free Lightweight multi-os text procesor)在命令行中,它有几个转换格式转换选项。

        12
  •  1
  •   Community CDub    4 年前

    从编程的角度来看,POI和iTextAPI非常相似。我在过去和这两个方面都有过合作,发现它们都很容易使用,而且有很好的文档记录。

    使用iText,您可以在格式(RTF和PDF)之间进行切换,只需对代码进行少量更改。如果我没记错的话,内容是使用相同的调用进行布局的,然后使用几行代码设置为PDF或RTF。

    然而,我相信RTF中的格式与DOC相比是有限的。我不知道您是否能够实现您正在寻找的高级功能(表、内联图像),而不需要太多麻烦(如果有的话)。

    鉴于您所说的HWPF没有足够的功能满足您的需求(我只讨论了POI的Excel方面),您的 最好的办法可能是说服当权者PDF是最适合这项工作的技术

        13
  •  1
  •   Peter Mortensen icecrime    15 年前

    我过去开发过纯基于XML的word文件。我使用了.NET,但是语言应该不重要,因为它实际上是XML。这并不是一件容易的事情(几年前有一个项目需要它)。这些只在Word 2007或更高版本中起作用——但你所需要的只是微软的白皮书,其中描述了每个标签的作用。您可以像使用Word一样使用标记来完成所有您想要的事情(当然最初会有点痛苦)

        14
  •  0
  •   billjamesdev    16 年前

    还有一种可能性,因为这是一个web应用程序。

    我能够呈现一个MIME类型设置为“application/msword”的HTML页面,这导致浏览器生成Word,Word很好地导入了HTML,允许编辑和保存,就像我输出一个真实的Word文档一样。

        15
  •  0
  •   Paul Jowett    14 年前

    尽管这比请求晚了很多,但它可能会帮助其他人。 Docmosis 提供一个Java API,用于使用文档作为模板创建doc、pdf、odt格式的文档。它使用OpenOffice作为引擎来执行格式转换。文档操作和填充由Docmosis本身执行。

        16
  •  -1
  •   billjamesdev    16 年前

    iText ,一个PDF和RTF文件创建API。我想我可以使用RTF生成来创建一个文档可读文件,然后可以使用文档对其进行编辑并重新保存。

    有没有人对iText有过这样的经验?