在 ASP.NET 中将 MS Word 文档转换为 PDF [关闭]

Posted

技术标签:

【中文标题】在 ASP.NET 中将 MS Word 文档转换为 PDF [关闭]【英文标题】:Converting MS Word Documents to PDF in ASP.NET [closed] 【发布时间】:2010-09-14 15:45:02 【问题描述】:

有人问了类似的问题,但没有什么和我的完全一样,所以就这样吧。

我们在 ASP.NET Web 服务器上有一组 Microsoft Word 文档,其中包含合并字段,其值是作为用户表单提交的结果而填写的。字段合并后,服务器必须将文档转换为 PDF 并将其流式传输到浏览器。我们的第一个想法是使用 Visual Studio Tools for Office API;但是,我们遇到了this warning from Microsoft:

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

看起来可以使用Open XML SDK 完成字段操作,但是在不打开 Word 的情况下将 Word 2007 文档转换为 PDF 的最佳方法是什么?最佳解决方案应该是低成本、可扩展、内存占用少、易于部署并具有 .NET API。

【问题讨论】:

对于任何正在寻找简单解决方案的人,我建议看看GemBox.Document 库,它可以在 ASP.NET 中轻松地将 DOCX 转换为 PDF(您只需要加载和保存方法调用),但它也有一个用于mail merging 的简单 API,因此您不必为此使用 OOXML SDK。 【参考方案1】:

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

【讨论】:

【参考方案2】:

它并不完全是开源的,但 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 应用程序无需使用 Adob​​e Acrobat® 从头开始​​创建 PDF 文档。 Aspose.Pdf 价格非常实惠,并提供了丰富的强大功能,包括:压缩、表格、图形、图像、超链接、安全性和自定义字体。 Aspose.Pdf 支持通过 API、XML 模板和 XSL-FO 文件创建 PDF 文件。 Aspose.Pdf 非常易于使用,并提供了 14 个用 C# 和 Visual Basic 编写的全功能演示。

查看API 和demos。您可以免费下载 DLL 进行试用。我以前都用过,效果很好。

还有iTextSharp,它是 iText 的 C# 端口,一个 Java PDF 转换器。我听说有些人尝试它的结果好坏参半。

【讨论】:

在尝试了许多不同的产品之后,Aspose 绝对是领先于其他产品。它的主要缺点是成本 - 它并不便宜,但你得到你所支付的。 我会第二个@glaxaco,Aspose 产品很棒,支持也很好,物有所值。顺便说一句,Aspose Words 现在支持更轻松的 doc 到 PDF 的转换。 @John 是正确的 - 您不再需要单独的 Aspose.Pdf 产品来从 Word 文档创建 PDF。【参考方案3】:

使用 C# 或 VB 查看 Microsoft 在 Saving Word 2007 Documents to PDF and XPS Formats 上的资源。

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

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

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

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

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

【讨论】:

【参考方案6】:

您应该为此尝试使用 OpenOffice。它是免费的,支持各种文件转换。我用它来将 DOC 和 DOCX 文件转换为 html 格式,效果非常好。

【讨论】:

您能为此分享您的示例存储库吗?我也在尝试在 OpenOffice 上这样做【参考方案7】:

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

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

【讨论】:

【参考方案8】:

Microsoft PDF add-in for word 似乎是目前最好的解决方案,但您应该考虑到它不会将所有 word 文档正确转换为 pdf,在某些情况下您会看到 word 和输出之间存在巨大差异.pdf不幸的是,我找不到任何可以正确转换所有 word 文档的 api。我发现确保转换 100% 正确的唯一解决方案是通过打印机驱动程序转换文档。缺点是文档会被排队并一一转换,但您可以确定生成的 pdf 与单词 docuemtn 完全一样。我个人更喜欢使用UDC(通用文档转换器)并在服务器上安装了Foxit Reader(免费版),然后通过启动“进程”并将其动词属性设置为“打印”来打印文档。您还可以使用 FileSystemWatcher 在转换完成时设置信号。

【讨论】:

以上是关于在 ASP.NET 中将 MS Word 文档转换为 PDF [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 导出word文档在导出这个word文档的某一书签位置生成一个条形码

asp.net中,把word文档转为PDF格式文件的问题。

ASP.NET 网站,将word文档转换成PDF格式,然后上传的系统所在的文件夹。

如何在 Python 中将 Word 文档转换为非常简单的 html? [关闭]

在 ASP.NET 中将 HTML 转换为 PDF [重复]

asp.net页面读取word文档内容显示