18

已经提出了类似的问题,但与我的完全不同,所以就这样吧。

我们在 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完成字段操作,但是在不打开 Word 的情况下将 Word 2007 文档转换为 PDF 的最佳方法是什么?最佳解决方案应该是低成本、可扩展、内存占用少、易于部署并具有 .NET API。

4

8 回答 8

13

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

于 2010-01-20T09:43:13.320 回答
12

它不完全是开源的,但 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演示。您可以免费下载 DLL 进行试用。我以前都用过,效果很好。

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

于 2008-10-15T10:53:40.173 回答
4

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

于 2008-10-01T21:11:17.107 回答
1

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

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

于 2008-10-15T10:45:45.510 回答
1

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

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

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

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

免责声明,我在这个产品上工作。话虽如此,它工作得很好。

于 2010-04-19T09:07:20.450 回答
1

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

于 2010-05-20T11:46:01.280 回答
1

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

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

于 2010-06-21T09:59:11.273 回答
0

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

于 2012-03-24T11:51:41.657 回答