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

我需要在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);

谁能帮我?

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

iTextAsian.jar中 cmap_info.txt的一些描述。

请注意,无论您使用方法BaseFont.createFont为“embedded”参数传递什么值,都不会嵌入字体。 要了解原因,请阅读以下信息。

查看使用CJK字体的PDF文件时,Acrobat Reader中使用的字体将下载到一个或多个字体包中。 您可以从以下URL自行下载这些fontpack: http : //www.adobe.com/products/acrobat/acrrasianfontpack.html

在此页面上,您可以找到以下信息: “如果Adobe(R)可移植文档格式(PDF)文件的作者在PDF文档中嵌入CJK和中欧(CE)字体,则可以使用任何语言版本的Adobe Reader( R)软件将能够在任何系统上显示CJK和CE文本而无需其他软件。

如果PDF文档的作者使用CJK或CE字体但未将其嵌入文档中,则需要安装正确的字体才能在非本机系统上查看Adobe PDF文件。

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

我没有测试过这个,但根据这个页面

使用已安装的字体是这样的。

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