我需要一个 Word 文档,它是一种模板……收集用户输入以填充该模板中的特定字段……然后生成一个 PDF 文件,其中包括完整的模板以及其他一些文档类型。有人对实现这一目标的组件有很好的建议吗?最好是不需要在 Web 服务器上安装 Microsoft Office 的软件。
7 回答
试试 Aspose Words for .net。来自他们的网站:“Aspose.Words 使 .NET 和 Java 应用程序能够在不使用 Microsoft Word 的情况下读取、修改和编写 Word® 文档。” 在 Aspose PDF 中使用 Aspose Words 可以让您输出为 PDF。
您不想做的一件事是在您的生产服务器上安装 MS Word。加载这些对象是缓慢的并且会吃掉内存。除非您还在服务器上安装了 MS Word,否则您将无法使用 CutePDF Writer。哎呀。
尝试使用 Apache POI API 填充字段。它可以进入 Word 文档并访问它们的元素。
至于 Word -> PDF 步骤,我还建议评估 Aspose 解决方案。它甚至可以执行这两个步骤。然而,它不是免费的。
有使用 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 是免费的,请查看许可以获取更多详细信息。
我对“doc 模板”+ 合并到 pdf 解决方案的第一个想法是从开放式办公格式开始。- odt 文件(打开文档模板)是基于 xml 的 - 所以你甚至可以使用 perl 来进行合并,然后调用 writer 的 doc 2 pdf(我不知道他们是否有 API,但可以在更少的时间内找到超过一天 - 即使必须检查来源。)
并将您的“单词”点转换为写入器 odt 文件只是 OoWriter 中的“文件另存为”操作。
嗯...您也许可以创造性地使用 CutePDF 打印机来解决这个问题。从本质上讲,它需要任何可以通过标准打印驱动程序输入的东西,并从中制作 PDF。免费。
看看Muhimbi PDF Converter Web 服务。它作为服务在 Windows 上运行,但可以从任何非 Windows 支持 Web 服务的环境访问,包括 Java 和 .NET。
尽管此解决方案需要将 MS-Office 安装在服务器上(不一定与您的应用程序在同一台服务器上),但它非常健壮并提供完美的转换保真度。
要生成或修改 MS-Word 文件,我建议使用免费的Open XML SDK for Microsoft Office。Eric White 维护了一个非常好的博客。
免责声明,我在这个产品上工作。话虽如此,它工作得很好。
如果您使用 Aspose.Words,那么您的输入文档/模板可以是多种支持的格式之一,包括 DOC、DOCX。
然后,您可以通过多种方式将数据插入到文档中。您可以在文档中使用书签并设置其文本。或者更好的是使用我们提供的报告引擎。它允许使用标准的 MS Word MERGEFIELD 字段,并添加了重复区域甚至嵌套的功能。例如,您可以在 MS Word 中设计一个发票(带有父/子数据)模板,然后在一行代码中从 .NET 数据集填充。
此外,您只需要 Aspose.Words 即可生成 PDF(一年前您需要 Aspose.Words 和 Aspose.Pdf)。您还可以轻松地将外观完全相同的文档保存为 DOC、DOC、DOCX 和其他一些格式。
我在 Aspose.Words 开发团队。