2012-12-18 58 views
0

使用wkhtmltopdf和C#製作阿拉伯文PDF時遇到問題。使用wkhtmltopdf製作阿拉伯文PDF

下面

是我的代碼作爲樣品

string HTML = "مرحبا"; 
      Encoding utf = Encoding.GetEncoding("UTF-8"); 
      Encoding unicode = Encoding.UTF8; 
      byte[] unicodeBytes = unicode.GetBytes(HTML); 
      HTML = utf.GetString(unicodeBytes); 

結果是?????在pdf 我試過'-q -n --encoding UTF-8'參數wkhtmltopdf甚至沒有成功。 任何想法如何解決這個問題?

回答

0

我建議你看看幾個阿拉伯文網站,並嘗試使用pdfcrowd或htm2pdf.co.uk進行轉換 - 它們都使用wkhtmltopdf,只是將頁面作爲輸入。

無論在那個頁面(所以這個字符串的格式)是你傳遞給wkhtmltopdf。

+0

pdfcrowd正確呈現的話,htm2pdf沒有,還有這裏不是辦法 – Madi

2

你的HTML字符串應該有正確的字符集和Content-Type:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+0

已經嘗試過這樣的: 「 مرحبا「 沒有工作 – Madi

+0

我認爲它的編碼問題在這裏,我試圖用utf-8編碼使用記事本創建一個新的html文件,並將其發送到wkhtmltopdf引擎它呈現它相關ctly,在我的情況下,我需要在c#中執行編碼,這在我的情況下不起作用 – Madi

+0

刪除上面的編碼轉換行並再次測試。在c#中的字符串是Unicode +你可以嘗試https://github.com/pruiz/WkHtmlToXSharp – VahidN

0

我設法通過創建一個臨時的HTML輸入文件渲染阿拉伯字符並將其發送到wkhtmltopdf發動機的唯一方法

0

<html> 
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
<body> 
 
     مرحبا 
 
</body> 
 
</html>

它好工作與我wkhtmltopdf 0.12.1
在C#中只是將HTML字符串保存在臨時html文件中,然後運行wkhtmltopdf命令
刪除臨時html文件後

0

這可能對其他人有幫助。

我在阿拉伯語中使用的自定義字體沒有安裝在我的服務器上。

必須安裝它才把它的工作(使用編碼UTF-8 +)..