2009-11-08 34 views
1

我想知道使用基於java的xhtmlrenderer(飛碟)庫呈現亞洲字符需要執行哪些步驟?如何使用xhtmlrenderer呈現PDF中的亞洲字符

我想呈現如下:

<html> 
    <body>同名の映畫のモデ</body> 
</html> 

沒有任何字體設置添加到此使得在正常的瀏覽器罰款HTML,但我不能找到反正使用iTextRenderer呈現此爲PDF部分的xhtmlrenderer。我看到很多帖子都在討論從c:\ windows \ fonts目錄中添加.TTF文件,並且我修改了這些示例以在Linux上運行(https://gist.github.com/643173745182c9becc57),它顯示了我顯示的各種字體,但我沒有看到任何亞洲glyffs。

有沒有人有任何體面的指針,或乾淨的解決方案,以解決這個問題?或者我在其他地方看到一個非常簡單的解決方案的錯誤問題?

+0

我從未使用過飛碟所以我不回答作爲一個答案,但通常這種事情涉及添加字體的渲染器。瀏覽器通常足夠聰明,可以檢測到它,但大多數這些庫不打算試圖找到合適的字體。 (例如BIRT在這方面很糟糕)。 – Malaxeur 2009-11-08 22:27:05

+0

謝謝 - 我也發現了這一點,之後又發現了更多的示例飛碟代碼,顯示瀏覽器組件在屏幕上顯示glyff,但仍然無法使用iText在PDF上渲染。 – 2009-11-08 22:58:45

回答

0

要支持大字符集,您需要指定一個包含所有這些字符的字體文件。一旦你選擇了一個字體文件,你將需要你的應用程序指向那個文件。我發現只是將字體文件放在字體目錄中不起作用。

嘗試嵌入字體,例如。

renderer.getFontResolver().addFont("your_font_file.ttf", BaseFont.EMBEDDED); 

This link有相當多的字體文件。

1

您還可以在CSS中添加字體樣式信息。

@font-face { 
    font-family: 'your_font_face_name'; 
    src: url('your_font.ttf'); 

    -fs-pdf-font-embed: embed; 
    -fs-pdf-font-encoding: Identity-H; 
     } 
相關問題