Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Japanese/Chinese text in pdf using iText Java

I need to add japanese/chinese text from xml web response to pdf using iText in java. I tried the following code after copying the KozMinPro-Regular.ttf to my c:\WINDOWS\Fonts folder but failed.

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

Can anyone help me?

like image 311
Nims Avatar asked Oct 11 '22 05:10

Nims


1 Answers

You should use iTextAsian (extra JAR file).

Some description of cmap_info.txt inside iTextAsian.jar.

Note that whatever value you pass for the 'embedded' parameter with the method BaseFont.createFont, the font WILL NOT BE embedded. To understand why, please read the following information.

The fonts that are used in Acrobat Reader when viewing a PDF file that uses CJK fonts will be downloaded in one or more font packs. You can download these fontpacks yourself from this URL: http://www.adobe.com/products/acrobat/acrrasianfontpack.html

On this page, you can find the following information: "If the author of an Adobe (R) Portable Document Format (PDF) file embeds CJK and Central European (CE) fonts in a PDF document, then any language version of Adobe Reader (R) software will be able to display the CJK and CE text on any system without additional software.

If the author of the PDF document uses CJK or CE fonts but does not embed them in the document, then the correct fonts will need to be installed in order to view the Adobe PDF file on non-native systems."

If needed fonts is unembedded in PDF file, you should not use absolute path for font files.
Create a jar file with font files, and include it in classpath entry.

like image 63
lschin Avatar answered Nov 01 '22 14:11

lschin