我需要帮助使用这些符号⎕,∨,0,Ʌ等。但是当我使用iText创建PDF时,这些符号不会出现。
我该怎么做才能出现这些符号?
答案 0 :(得分:8)
您必须使用包含这些字符的字体和编码。您最好的选择是使用IDENTITY_H作为编码,因为这可以授予您访问给定字体中每个字符的权限......但您仍然必须使用正确的字体。
有关字体的“iText in Action”章节中有几个字体操作示例: http://www.itextpdf.com/book/chapter.php?id=11
示例在右侧。购买这本书可能也会有所帮助。
答案 1 :(得分:2)
我也有同样的问题,我发现使用IDENTITY_H进行编码工作正常。 例如:
java.awt.Font f =...;
Font font = FontFactory.getFont(f.getName(),BaseFont.IDENTITY_H)
我不明白为什么使用BaseFont.WINANSI它不起作用。 Winansi是标准的Windows Cp1252字符集,是我的JVM使用的字符集。那么,如果char在Java中正确显示,为什么不是PDF的情况呢?
答案 2 :(得分:1)
您可以根据java语言规范中定义的unicode转义序列来转义它们。见http://java.sun.com/docs/books/jls/first_edition/html/3.doc.html
如果您使用IntelliJ IDEA作为代码,您可以下载StringManipulation插件,它可以帮助您解决问题。在IDEA的设置中,您还可以在文件编码下设置“透明的原生到ascii转换”复选框,这应该有助于实现这一目的。
答案 3 :(得分:0)
通过iText在pdf文件中加注:
BaseFont bf = BaseFont.createFont("c:/windows/fonts/arialbd.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
question.add(new Phrase("\u25A1", new Font(bf, 26)));
您可以看到pdf文件例如here