如何在C#中将.docx转换为.pdf

17

现在我们正在使用OpenXML从数据库读取数据并生成doc文件。但是最终要求生成pdf文件。因此我想知道如何在C#中将.docx转换为pdf。能否提供帮助或提供一些信息。


我使用Aspose.Words来完成这个任务。它是一个纯.NET库,具有相当不错的渲染兼容性。虽然Office自动化可能也可以实现,但速度较慢,并且在完全自动化的环境下无法使用,因为它可能会弹出随机窗口要求输入。 - Cory Nelson
我最喜欢的解决方案是生成一个HTML文件,让用户打印到他们喜欢的任何格式。优点是a)不需要特殊软件和b)打印代码已经为您完成。显然,我们可以根据给定的要求提供帮助,但HTML建议通常会得到管理层的好评。 - Gusdor
如果最终要求是PDF,那么为什么要创建DOCX文件呢?难道不能直接读取数据库值来创建PDF吗? - Software Engineer
我使用GemBox.Document及其转换代码(Load + Save)。此外,关于从数据库生成文档,您可以查看邮件合并代码,它可以轻松完成此操作。 - Hazel Patton
1个回答

16

您可以在此链接中查看解决方案:http://www.codeproject.com/Questions/346784/How-to-convert-word-document-to-pdf-in-Csharp

我建议首先使用以下解决方案:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Office.Interop.Word;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
        wordDocument = appWord.Documents.Open(@"D:\desktop\xxxxxx.docx");
        wordDocument.ExportAsFixedFormat(@"D:\desktop\DocTo.pdf", WdExportFormat.wdExportFormatPDF);
    }

    public Microsoft.Office.Interop.Word.Document wordDocument { get; set; }
}

8
功能表现良好,但需要安装Word才能使用。 - AFract
5
尽管这样做是有效的,但Microsoft不建议将其放置在服务器上。 正如AFract所说,它需要在计算机上安装MS Office,这需要额外的许可证。 - SpaceApple
2
我曾经见过这种事情毁了生产服务器。由于内存泄漏和不同的线程模型,这通常是一个坏主意。 - Mark Fitzpatrick

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