类似的问题已经被问过,但没有完全像我的,所以这里去。
我们与合并域,其值填充为用户表单提交结果的一个ASP.NET的Web服务器上的Microsoft Word文档的集合。 现场合并后,服务器必须将文档转换为PDF和流下来的浏览器。 我们的第一个倾向是使用了Office API的Visual Studio工具; 然而,我们遇到了来自微软这样的警告 :
微软目前并不提倡,不支持,Microsoft Office应用程序自动化从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT Service),因为Office可能会出现不稳定的行为和/或者当办公室在这种环境中运行死锁。
它看起来像场操作可以用做开放XML SDK ,但什么是到Word 2007和文档转换为PDF格式,而无需打开Word中的最佳方式? 最佳的解决方案是低成本,可扩展的,具有低内存占用,易于部署,并且有一个.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应用程序中不使用的AdobeACROBAT®从头开始创建PDF文档。 Aspose.Pdf非常经济实惠的价格,并提供了丰富强大的功能,包括:压缩,表格,图形,图像,超链接,安全和自定义字体。 Aspose.Pdf支持通过API的PDF文件,XML模板和XSL-FO文件的创建。 Aspose.Pdf非常易于使用,并设有14个写在C#和Visual Basic全功能的演示。
退房的API和演示 。 你可以下载一个DLL免费尝试一下。 我用两个前,他们执行的很好。
还有iTextSharp的是iText的,一个Java PDF转换器的C#端口。 我听说过一些人,结果好坏参半尝试。
现在的问题是“MS Word文档在ASP.NET PDF”让我很疑惑,为什么Aspose.Pdf和Aspose.Pdf.Kit如上建议。 您需要使用使用Aspose.Words ,因为这是支持Microsoft Word文档转换为PDF的组件。
看看微软的资源上保存的Word 2007和文档转换为PDF和XPS格式使用C#或VB。
ActivePdf DocConverter - http://www.activepdf.com/
但是,它需要的服务器质量好转换上安装的Office。
你应该尝试使用OpenOffice的这一点。 它是免费的,并支持文件转换的整个范围。 我已经用它来DOC和DOCX文件转换为HTML格式与梦幻般的效果。
ABCpdf是另一种流行的组件,它会让你的Word文档转换为PDF ASP.NET下,但我相信它也利用Microsoft Office或OpenOffice的的。
http://www.websupergoo.com/abcpdf-office-docs.htm
使用Aspose.Words可能是你最好的选择,但它并没有完全转换所有的视觉元素。
看一看在Muhimbi PDF转换器的Web服务 。 它运行在Windows上作为一个服务,但可以从任何非Windows网络服务能力的环境,包括Java和.NET进行访问。
虽然这种解决方案需要微软Office要在服务器(不一定是同一台服务器上的应用程序)上安装,这是非常强大,提供了完美转换保真度。 它竭尽全力来解决僵局的问题,微软是指在其知识库文章。
要生成或修改我建议使用免费的MS-Word文件为微软的Office Open XML SDK 。 埃里克·怀特保持一个真正的好博客了。
免责声明,我的工作对这款产品。 话虽如此,它的伟大工程。
微软PDF插件的话似乎是最好的解决办法,现在,但你应该考虑到它不正确地转换所有Word文档为PDF格式,并在某些情况下,你会看到这个词和输出的PDF之间的巨大差异。 不幸的是我无法找到,将正确地转换所有Word文档的任何API。 我发现,以保证转换唯一的解决办法是100%正确的是通过打印机驱动程序转换的文件。 不足之处是文件进行排队,一个一个转换,但可以肯定的结果的PDF是完全一样的字docuemtn。 我使用UDC(通用文档转换器),个人倾向于和服务器上安装了福昕阅读器(免费版)太然后通过启动“过程”并设置其属性动词“打印”打印文档。 您也可以使用FileSystemWatcher的转换何时完成设定的信号。