使用iText Java的pdf中的日文/中文文本

时间:2011-04-26 04:01:28

标签: java unicode internationalization itext

我需要在java中使用iText将xml web响应中的日文/中文文本添加到pdf中。我将KozMinPro-Regular.ttf复制到我的c:\ WINDOWS \ Fonts文件夹后尝试了以下代码但是失败了。

Font font = new Font(BaseFont.createFont("KozMinPro-Regular", "UniJIS-UCS2-H", BaseFont.EMBEDDED), 10);

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

您应该使用 iTextAsian (额外的JAR文件)。

iTextAsian.jar cmap_info.txt 的一些说明。

  

请注意,您传递的任何值   与'嵌入'参数   方法 BaseFont.createFont ,字体   不会被嵌入。要明白   为什么,请阅读以下内容   信息。

     

Acrobat中使用的字体   读者在查看PDF文件时   使用CJK字体将被下载   一个或多个字体包。您可以   自己下载这些fontpack   这个网址:   http://www.adobe.com/products/acrobat/acrrasianfontpack.html

     

在此页面上,您可以找到   以下信息:“如果是作者   Adobe(R)便携式文档   格式(PDF)文件嵌入CJK和   PDF中的中欧(CE)字体   文档,然后是任何语言版本   Adobe Reader(R)软件将能够   在任何上显示CJK和CE文本   没有附加软件的系统。

     

如果PDF文档的作者使用   CJK或CE字体但不嵌入   他们在文件中,然后是正确的   需要安装字体   为了查看Adobe PDF文件   非原生系统。“

如果需要的字体未嵌入PDF文件中,则不应使用字体文件的绝对路径 使用字体文件创建一个jar文件,并将其包含在类路径条目中。

答案 1 :(得分:0)

我没有对此进行测试,但根据this页面

安装字体的用法是这样的。

Font font = new Font(BaseFont.createFont("C:\\Windows\\Fonts\\KozMinPro-Regular.ttf,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED), 10);