How to solve an UnsupportedCharsetException when using itext-asian.jar?

Category: 
Tags: AsianfontslanguagesiText 5

My Code:

public static final String[] tempString =
    { "KozMinPro-Regular.otf", "UniJIS-UCS2-H", pharseString };
bf = BaseFont.createFont(tempString[0], tempString[1], BaseFont.NOT_EMBEDDED);

The exception:

java.nio.charset.UnsupportedCharsetException: UniJIS-UCS2-H
        at java.nio.charset.Charset.forName(Unknown Source)
        at com.itextpdf.text.pdf.PdfEncodings.convertToBytes(PdfEncodings.java:186)
        at com.itextpdf.text.pdf.TrueTypeFont.<init>(TrueTypeFont.java:376)
        at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:705)
        at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:621)
        at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:456)
        at de.vogella.itext.write.Main.addTextJapanese(Main.java:145)
        at de.vogella.itext.write.Main.addContent(Main.java:134)
        at de.vogella.itext.write.Main.main(Main.java:254)
Posted on StackOverflow on Sep 14, 2014 by Han Kun

The cause of the exception that is thrown can be found in the following lines:

public static final String[] tempString =
    { "KozMinPro-Regular.otf", "UniJIS-UCS2-H", pharseString };    
bf = BaseFont.createFont(tempString[0], tempString[1], BaseFont.NOT_EMBEDDED);

Either you have a font program named KozMinPro-Regular.otf, or you want to use the font KozMinPro-Regular.

If you have a file named KozMinPro-Regular.otf, you don't need the iText-Asian.jar. Just use the font file with an encoding that is supported by that font program. UniJIS-UCS2-H is not supported by that OpenType font.

If you want to use CJK fonts (the fonts that are not embedded and require a font pack in Adobe Reader), you should use KozMinPro-Regular (without the otf).