我正在使用com.lowagie.text.FontFactory
生成PDF文件,并尝试使用自定义字体KozMinPro-Regular,它提供对日文字符的支持,因为我们需要支持这一点。我发现搜索中的示例显示了如何执行此操作,类似于我在下面的操作,这些示例假设支持UniJIS-UCS2-H
编码,但是当我尝试这个时,我得到下面的例外,说这个编码不是支持的。如果有人对此有任何了解,我将不胜感激。感谢
FontFactory.register("/usr/share/fonts/truetype/KozMinPro-Regular.ttf", "JapaneseCompatible");
contentFont = FontFactory.getFont("JapaneseCompatible", "UniJIS-UCS2-H", true, 11, Font.BOLD);
headerFont = FontFactory.getFont("JapaneseCompatible", "UniJIS-UCS2-H", true, 11, Font.BOLD);
我得到的例外:
Exception: [.ReportPdfView] Exception caught during generation of pdf file. Cause: UniJIS-UCS2-H
ExceptionConverter: java.io.UnsupportedEncodingException: UniJIS-UCS2-H
at java.lang.StringCoding.encode(StringCoding.java:286)
at java.lang.String.getBytes(String.java:954)
at com.lowagie.text.pdf.PdfEncodings.convertToBytes(Unknown Source)
at com.lowagie.text.pdf.TrueTypeFont.<init>(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at com.lowagie.text.FontFactoryImp.getFont(Unknown Source)
at com.lowagie.text.FontFactoryImp.getFont(Unknown Source)
at com.lowagie.text.FontFactory.getFont(Unknown Source)
at com.lowagie.text.FontFactory.getFont(Unknown Source)
答案 0 :(得分:3)
您需要iTextAsian.jar
。它给予了CJK支持。
...见
对于早期版本的iText或,http://itextpdf.sourceforge.net/
http://sourceforge.net/projects/itext/files/extrajars/用于更高版本的iText。(extrajars.zip包含iTextAsian.jar)