有人问过类似的问题,但没有什么像我的一样,所以这里也是如此。

我们在ASP.NET Web服务器上有一组Microsoft Word文档,其中包含合并字段,其值由用户表单提交填写。字段合并后,服务器必须将文档转换为PDF并将其流式传输到浏览器。我们的第一个倾向是使用Visual Studio Tools for Office API;但是,我们遇到了来自Microsoft的此警告

  

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定Office在此环境中运行时的行为和/或死锁。

看起来可以使用 Open XML SDK

进行字段操作a>,但是在不打开Word的情况下将Word 2007文档转换为PDF的最佳方法是什么?最佳解决方案是低成本,可扩展,内存占用少,易于部署以及具有.NET API。

有帮助吗?

解决方案

这不完全是开源的,但Aspose有几个产品可以做到这一点,

Aspose.Pdf.Kit

  

Aspose.Pdf.Kit是一个非图形化的PDF®文档操作组件,使.NET和Java开发人员能够管理现有PDF文件以及管理嵌入在PDF文件中的表单字段。 Aspose.Pdf非常适合创建新的PDF文件;但是,开发人员通常需要编辑已有的PDF文档。 Aspose.Pdf.Kit允许他们这样做。 Aspose.Pdf.Kit允许开发人员创建功能强大的应用程序,以便将数据直接合并到PDF文档中,以及更新和管理PDF文档。 Aspose.Pdf.Kit是一款出色的产品,与我们的其他PDF产品配合使用。

Aspose.pdf

  

Aspose.Pdf是一个非图形化的PDF®文档报告组件,允许.NET或Java应用程序从头开始创建PDF文档,而无需使用Adobe Acrobat®。 Aspose.Pdf价格非常实惠,并提供丰富的强大功能,包括:压缩,表格,图形,图像,超链接,安全性和自定义字体。 Aspose.Pdf支持通过API,XML模板和XSL-FO文件创建PDF文件。 Aspose.Pdf非常易于使用,并提供了14个用C#和Visual Basic编写的全功能演示。

查看 API 演示的。您可以免费下载DLL来试用它。我之前使用过它们并且效果很好。

还有 iTextSharp ,这是一个Java PDF转换器iText的C#端口。我听说有些人尝试混合结果。

其他提示

问题是“ASP.NET中的MS Word文档到PDF”所以我很困惑为什么Aspose.Pdf和Aspose.Pdf.Kit被推荐上面。您需要使用 Aspose.Words 因为那是支持Microsoft Word文档到PDF转换的组件。

查看Microsoft的将Word 2007文档保存为PDF和XPS格式的资源使用C#或VB。

ActivePdf DocConverter - http://www.activepdf.com/

但它需要在服务器上安装Office才能实现高质量的转换。

您应该尝试使用OpenOffice。它是免费的,支持各种文件转换。我用它来转换DOC& DOCX文件为HTML格式,结果非常棒。

ABCpdf是另一个流行的组件,它可以让你在ASP.NET下将Word文档转换为PDF,但我相信它也可以使用Microsoft Office或OpenOffice。

http://www.websupergoo.com/abcpdf-office-docs.htm

Aspose.Words可能是您的最佳选择,但它并不能完美地转换所有视觉元素。

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

虽然此解决方案要求MS-Office安装在服务器上(不一定与您的应用程序相同),但它非常强大并且提供了完美的转换保真度。它竭尽全力解决微软在他们的知识库文章中提到的死锁问题。

要生成或修改MS-Word文件,我建议使用免费的为Microsoft Office打开XML SDK 。 Eric White维护着一个非常好的Blog <关于它。

免责声明,我参与了这个产品。话虽如此,但效果很好。

单词的Microsoft PDF加载项似乎是目前最好的解决方案,但您应该考虑到它没有正确地将所有word文档转换为pdf,在某些情况下,您会看到单词和输出之间的巨大差异PDF格式。不幸的是我找不到任何能正确转换所有word文档的api。我发现确保转换100%正确的唯一解决方案是通过打印机驱动程序转换文档。缺点是文档排队并逐个转换,但您可以确定生成的pdf与docuemtn这个词完全相同。我个人更喜欢使用UDC(通用文档转换器)并在服务器上安装福昕阅读器(免费版),然后通过启动“处理”按钮来打印文档。并将其Verb属性设置为“print”。您还可以使用FileSystemWatcher在转换完成后设置信号。

scroll top