基于Microsoft Word模板生成PDF文档

8

我需要使用一个模板来生成Word文档,然后收集用户输入以填充该模板中的特定字段,最后生成一个包含完成的模板以及其他几种文档类型的PDF文件。有没有好的组件建议可以实现这个功能?最好不需要在Web服务器上安装Microsoft Office。

7个回答

6
尝试使用Aspose Words for .net。从他们的网站上可以得知:“Aspose.Words使.NET和Java应用程序能够在不使用Microsoft Word的情况下读取、修改和编写Word®文档。” 使用Aspose Words与Aspose PDF结合使用,您可以输出PDF文件。
有一件事是您绝对不想在生产服务器上安装MS Word。加载这些对象很慢,而且会占用大量内存。除非您也在服务器上安装了MS Word,否则您将无法使用CutePDF Writer。简直太糟糕了。

0

请查看Muhimbi PDF Converter Web Services。它作为Windows服务运行,但可以从任何非Windows Web服务环境(包括Java和.NET)访问。

尽管此解决方案需要在服务器上安装MS-Office(不一定是应用程序所在的同一台服务器),但它非常强大,并提供完美的转换保真度。

要生成或修改MS-Word文件,我建议使用免费的Microsoft Office Open XML SDK。Eric White维护了一个非常好的博客

声明:我曾参与开发此产品。话虽如此,它确实很棒。


0
如果您使用Aspose.Words,那么您的输入文档/模板可以是多种支持的格式之一,包括DOC、DOCX。
然后,您可以以多种方式向文档中插入数据。您可以在文档中使用书签并设置它们的文本。或者更好的方法是使用我们提供的报告引擎。它允许使用标准的MS Word MERGEFIELD字段,并添加了重复区域甚至嵌套的功能。例如,您可以在MS Word中设计一个发票(带有父/子数据)模板,然后在一行代码中从.NET DataSet中填充。
此外,您只需要Aspose.Words即可生成PDF(一年前您需要同时使用Aspose.Words和Aspose.Pdf)。您还可以轻松地将完全相同的文档保存为DOC、DOC、DOCX和其他几种格式。
我是Aspose.Words开发团队的成员。

0

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

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


0

对于“文档模板”+合并为PDF的解决方案,我的第一个想法是从Open Office格式开始。ODT文件(开放文档模板)基于XML,因此您甚至可以使用Perl进行合并,然后调用Writer的doc 2 pdf(我不知道它们是否有API,但即使需要检查源代码,也可以在不到一天的时间内找到答案。)

将您的“Word”点转换为Writer ODT文件只需在OoWriter中执行“文件另存为”操作。


0

有使用Word的原因吗?如果您从具有表单字段的PDF开始,可以允许用户填写字段,或者使用iTextSharp的PDF印章程序进行编程填写。

如果您需要以编程方式使用MSOffice 2000/2003组件,则可以尝试使用Office Web组件。它们确实需要在服务器上安装,但可以由.NET和Com应用程序用于与办公文件类型交互。更多信息请查看此处... http://en.wikipedia.org/wiki/Office_Web_Components

如果您在办公室CD上搜索,应该会找到您版本的OWC安装程序。我没有使用过2007版,但我认为可能有类似的东西可用。

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


我们使用Word的唯一原因是为了用户的易用性。这些模板会有一定的规律变化,所以他们需要能够更改它们,而大多数用户只安装了PDF阅读器软件。谢谢您的建议。 :-) - Tyler

0
嗯...你也许可以巧妙地利用CutePDF打印机来解决这个问题。基本上,它可以将通过标准打印驱动程序传输的任何内容制作成PDF文件。而且它是免费的。

我很熟悉CutePDF,因为我个人使用它将许多东西打印成PDF格式。我从未考虑过在服务器环境中使用它。我一定会考虑这个建议的。 - Tyler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接