2011-12-23 162 views
0

我想使用iTextSharp將HTML文件轉換爲PDF。我使用this codeiTextSharp用於將HTML轉換爲PDF的替代品

我那麼做了以下將其轉換爲PDF格式:

HTMLWorker htmlWorker = new HTMLWorker(document); 
htmlWorker.Parse(new StringReader(results)); 
document.Close(); 

然而,沒有任何CSS的解析。任何替代品?

+0

你試過了什麼?該問題中的代碼是檢索HTML頁面,而不是將任何內容轉換爲PDF。 – Amy 2011-12-23 08:14:43

+0

道歉,編輯了問題 – user1016313 2011-12-23 08:30:38

+0

「HTMLWorker」已棄用。請嘗試使用它們的「XMLWorker」。 – VahidN 2014-01-09 07:58:02

回答

10

18個月前,我們徹底地測試了大多數可用的html-to-pdf轉換器(付費和免費)。最後,這個傳統的最好的 html-to-pdf轉換器是一個免費的開源程序,名爲wkhtmltopdf

它是命令行驅動的,使用webkit渲染引擎,準確地(並且更重要的是,一致地)將網頁轉換成美觀的pdf文件。它還具有各種有用的命令行開關,爲您提供完整的頁眉/頁腳控制,可選地創建目錄頁面,並且運行速度非常快。而且 - 由於它是命令行驅動的,因此它可以很容易地用於批生成。你根本不會出錯。

作爲一個旁註,這個程序還有一個名爲wkhtmltoimage的姊妹程序(捆綁在下載中),其工作方式完全相同,但將網頁轉換爲各種圖像格式。這也非常有用,我們使用此功能在構建作業提案時拍攝我們基於Web的工具的快照。

我知道我聽起來像一個總迷人的男孩,但我不是。我只是一個對那裏所有的垃圾郵件轉換器感到厭倦的人,當我們發現wkhtmltopdf時,我被加倍地吹走了。我根本無法推薦這個小程序。

+0

webkit渲染引擎?那麼Firefox和IE用戶呢? – maxisam 2011-12-28 03:38:30

+1

用戶在他們的機器上安裝了什麼Web瀏覽器並不重要 - 只要頁面使用語義正確的HTML編碼,pdf就會看起來很好。 – 2011-12-28 03:41:22

+0

哇!這聽起來很棒! – maxisam 2011-12-28 03:43:55

2

就替代方案而言,我只能推薦ABCpdf,我們已成功地使用它來將大量HTML文檔轉換爲PDF,作爲我們的Web應用程序的一部分。

2

它不會自動加載它。您需要按照以下方式手動完成。

StyleSheet ss = new StyleSheet(); 
ss.LoadStyle("body", "leading", "16,0"); 
ss.LoadStyle("p", "style", "font-family:Times New Roman"); 

然後使用

List<IElement> htmlToPDF = HTMLWorker.ParseToList(new StringReader("<font face=\"Times\">" + html + "</font>"), style); 

foreach (IElement element in htmlToPDF) { 
    document.Add(element); 
    } 

然而,只有一些樣式iTextSharp的不是所有的人工作。

其實你應該試試XMLWorker,這是itextsharp的一個插件。它剛剛在本月發佈。它可以比僅使用itextsharp更好地處理html。

我認爲wkhtmltopdf項目看起來不錯,但我不知道它是否會與我們的生產環境打得很好,因爲web應用程序是多線程程序。