基于 Microsoft Word 模板生成 PDF 文档 [关闭]

Posted

技术标签:

【中文标题】基于 Microsoft Word 模板生成 PDF 文档 [关闭]【英文标题】:Generating a PDF document based on a Microsoft Word Template [closed] 【发布时间】:2010-09-10 06:26:08 【问题描述】:

我需要一个 Word 文档,它是某种模板……收集用户输入以填充该模板中的特定字段……然后生成一个 PDF 文件,其中包括完整的模板以及其他一些文档类型。有人对实现这一目标的组件有很好的建议吗?最好是不需要在 Web 服务器上安装 Microsoft Office。

【问题讨论】:

【参考方案1】:

试试 Aspose Words for .net。来自他们的网站:“Aspose.Words 使 .NET 和 Java 应用程序能够在不使用 Microsoft Word 的情况下读取、修改和编写 Word® 文档。”在 Aspose PDF 中使用 Aspose Words 可以让您输出为 PDF。

您不想做的一件事是在您的生产服务器上安装 MS Word。加载这些对象是缓慢的并且会吃掉内存。除非您还在服务器上安装了 MS Word,否则您将无法使用 CutePDF Writer。哎呀。

【讨论】:

【参考方案2】:

有使用 Word 的理由吗?如果您从带有表单字段的 PDF 开始,您可以允许用户填写字段,或者使用 iTextSharp 的 PDF 压模以编程方式完成。

如果您需要以编程方式使用 MSOffice 2000/2003 组件,您可以尝试使用 Office Web Components。它们确实需要安装在服务器上,但可以被 .NET 和 Com 应用程序用于与 office 文件类型进行交互。更多信息在这里...http://en.wikipedia.org/wiki/Office_Web_Components

如果您在办公 CD 上进行挖掘,您应该会找到适合您的版本的 OWC 安装程序。我没有使用 2007,但我认为有类似的东西可用。

iTextSharp 和 OWC 是免费的,请查看许可以获取更多详细信息。

【讨论】:

我们将使用 Word 的唯一原因是用户易于使用。这些模板会定期更改,因此他们需要能够更改它们,并且大多数用户只安装了 PDF Reader 软件。不过谢谢你的建议。 :-)【参考方案3】:

嗯...您也许可以创造性地使用 CutePDF 打印机来解决这个问题。从本质上讲,它需要任何东西,可以通过标准打印驱动程序输入并从中生成 PDF。它是免费的。

【讨论】:

我对CutePDF很熟悉,因为我个人用它来打印很多东西到PDF。我从来没有想过在服务器环境中使用它。我一定会考虑的。【参考方案4】:

尝试使用 Apache POI API 填充字段。它可以进入 Word 文档并访问其中的元素。

至于 Word -> PDF 步骤,我还建议评估 Aspose 解决方案。它甚至可以执行这两个步骤。但是,它不是免费的。

【讨论】:

【参考方案5】:

我对“doc 模板”+ 合并到 pdf 解决方案的第一个想法是从开放式办公格式开始。 - odt 文件(打开文档模板)是基于 xml 的 - 所以你甚至可以使用 perl 来进行合并,然后调用 writer's doc 2 pdf(我不知道他们是否有 API,但可以用更少的代码找到超过一天 - 即使必须检查来源。)

并将您的“单词”点转换为写入器 odt 文件只是 OoWriter 中的“文件另存为”操作。

【讨论】:

【参考方案6】:

如果您使用 Aspose.Words,那么您的输入文档/模板可以是多种支持的格式之一,包括 DOC、DOCX。

然后您可以通过多种方式将数据插入到文档中。您可以在文档中使用书签并设置其文本。或者更好的是使用我们提供的报告引擎。它允许使用标准的 MS Word MERGEFIELD 字段,并添加了重复区域甚至嵌套的功能。例如。您可以在 MS Word 中设计一个发票(带有父/子数据)模板,然后在一行代码中从 .NET 数据集填充。

此外,您只需要 Aspose.Words 即可生成 PDF(一年前您需要 Aspose.Words 和 Aspose.Pdf)。您还可以轻松地将外观完全相同的文档保存为 DOC、DOC、DOCX 和其他几种格式。

我是 Aspose.Words 开发团队的一员。

【讨论】:

【参考方案7】:

看看Muhimbi PDF Converter Web Services。它作为服务在 Windows 上运行,但可以从任何不支持 Windows 网络服务的环境(包括 Java 和 .NET)访问。

虽然此解决方案需要将 MS-Office 安装在服务器上(不一定与您的应用程序在同一台服务器上),但它非常健壮并提供完美的转换保真度。

要生成或修改 MS-Word 文件,我建议使用免费的Open XML SDK for Microsoft Office。 Eric White 维护了一个关于它的really good Blog。

免责声明,我曾在此产品上工作。话虽如此,效果很好。

【讨论】:

以上是关于基于 Microsoft Word 模板生成 PDF 文档 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java 使用模板生成 Word 文件---基于 Freemarker 模板框架

poi-tl——Word模板生成器

使用FreeMarker生成Word文档

java动态生成word,该怎么解决

vue中实现html页面导出word和pdf的办法

Android基于Poi生成Word