How to solve an UnsupportedCharsetException when using itext-asian.jar?
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
).
Click this link if you want to see how to answer this question in iText 7.