2013-10-24 36 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