2013-10-24 69 views
6

现在我们使用OpenXML从数据库读取数据并生成doc。但最终的要求是成为pdf。所以我想知道如何在C#中将.docx转换为pdf。任何人都可以帮忙吗?或者提供一些信息。如何将.docx转换为.pdf中的.pdf

+0

我用使用Aspose.Words去做这个。这是一个纯粹的.NET库,具有相当不错的渲染兼容性。办公自动化可能工作但速度很慢,但在全自动化环境中无法使用,因为它可以弹出随机窗口询问输入。 –

+0

我最喜欢的解决方案是生成一个HTML文件,让用户打印他们喜欢的任何格式。优点a)不需要特殊软件,b)打印代码完成。很明显,我们可以帮助我们提供的要求,但HTML建议经常与管理层妥协。 – Gusdor

+0

如果最终需求是pdf,那么为什么要创建docx?你不能直接阅读数据库值来创建pdf吗? – Coder

回答

6

您可以检查在这个环节的解决方案: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; } 
} 
+0

工作得很好,但需要安装Word。 – AFract

+1

尽管这确实起作用,但Microsoft并不建议让它位于服务器上。同样如AFract所说,它要求将MS办公室安装在需要额外许可的计算机上。 – SpaceApple

-3

你可以看看库,例如iTextSharp

+6

iTextSharp不能直接将docx转换为pdf,它会从头开始创建PDF或复制现有的PDF页面。 – Coder