2014-11-02 55 views
7

我想使用FlyingSaucer將包含阿拉伯字符的HTML頁面轉換爲PDF文件,但生成的PDF不包含組合字符並向後打印輸出。使用FlyingSaucer將包含阿拉伯字符的HTML頁面轉換爲PDF

HTML:

<?xml version="1.0" encoding="UTF-8"?> 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
    <head> 
 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
    </head> 
 

 
    <body style="font-size:15px;font-family: Arial Unicode MS;"> 
 

 
     <center style="font-size: 18px; font-family: Arial Unicode MS;"> 
 
      <b> 
 
       <i style="font-family: Arial Unicode MS;"> 
 
        &#x062C;&#x0645;&#x064A;&#x0639; &#x0627;&#x0644;&#x062D;&#x0642;&#x0648;&#x0642;<br /> 
 
       </i> 
 
      </b> 
 
     </center> 
 
    </body> 
 
</html>

Java的摘錄:

String inputFile = "c:\\html.html"; 
     String url = new File(inputFile).toURI().toURL().toString(); 
     String outputFile = "c:\\html.pdf"; 
     OutputStream os = new FileOutputStream(outputFile); 

     ITextRenderer renderer = new ITextRenderer(); 
     renderer.getFontResolver().addFont("c://ARIALUNI.TTF", BaseFont.IDENTITY_H,BaseFont.EMBEDDED); 

     renderer.setDocument(url); 
     renderer.layout(); 
     renderer.createPDF(os); 
     os.close(); 

實際PDF結果:actual result

預期PDF結果:expected result

我能做些什麼,以獲得正確的結果?

+0

其實你正試圖畫布圖像轉換爲PDF格式??? – CoderNeji 2015-07-07 06:53:48

+0

這看起來像一個飛碟錯誤給我。阿拉伯語unicode字符處於明確定義的範圍內,顯然已知它們是RTL(從右到左)。顯然瀏覽器正在渲染RTL,但飛碟不是。將錯誤報告給Google。 – 2015-07-13 23:47:18

+0

你有阿拉伯語格式的解決方案嗎? – Hana90 2017-02-06 10:03:31

回答

0

我在使用阿拉伯字體時,遇到了類似的對齊問題。阿拉伯語是一種RTL語言。您需要特定的罐子以RTL語言生成PDF。目前,當您嘗試生成PDF時,模式是正常的LTR,因爲您正在獲取當前輸出。

+0

如何修理它?? – Hana90 2017-02-06 10:03:42

相關問題