我的代码:
public static final String[] tempString = { "KozMinPro-Regular.otf", "UniJIS-UCS2-H", pharseString };
bf = BaseFont.createFont(tempString[0], tempString[1], BaseFont.NOT_EMBEDDED);
结果:
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)
我的项目:
请参阅链接:http://upanh.in/Cmk
您对如何修复错误有任何建议吗?
答案 0 :(得分:1)
你是在为自己的错误责备你的工具。
这没有意义:
public static final String[] tempString = { "KozMinPro-Regular.otf", "UniJIS-UCS2-H", pharseString };
bf = BaseFont.createFont(tempString[0], tempString[1], BaseFont.NOT_EMBEDDED);
您有一个名为KozMinPro-Regular.otf
的字体程序,或者您想使用字体KozMinPro-Regular
。
如果您有一个名为KozMinPro-Regular.otf
的文件,则不需要iText-Asian.jar。只需使用该字体程序支持的编码的字体文件即可。该OpenType字体不支持UniJIS-UCS2-H
。
如果您想使用CJK字体(非嵌入字体且需要Adobe Reader中的字体包),您应该使用KozMinPro-Regular
(不含otf
)。
简而言之:您遇到 代码中的错误,而不是您正在使用的工具中的错误。您可能希望将来以不同的方式表达您的问题。