不显示iText Java的代理汉字
使用maven回购协议中的iText 5.5.11 基本多语言平面中的非代理字符在生成的pdf上呈现,但代理字符不呈现 编辑:还尝试使用编码为“UniGB-UCS2-H”的字体“STSong Light”(如本书中的示例所示)。相同的结果-缺少代理项字符不显示iText Java的代理汉字,java,unicode,itext,Java,Unicode,Itext,使用maven回购协议中的iText 5.5.11 基本多语言平面中的非代理字符在生成的pdf上呈现,但代理字符不呈现 编辑:还尝试使用编码为“UniGB-UCS2-H”的字体“STSong Light”(如本书中的示例所示)。相同的结果-缺少代理项字符 Edit2:让它与“SimSun ExtB”字体一起工作这通常是一个标志,表明所使用的字体(在本例中为Arial)没有用于字符的字形。您可以通过粘贴1)arialuni.ttf的大小-千字节或兆字节?它应该是兆字节。2) 您的计算机上是否安装了
Edit2:让它与“SimSun ExtB”字体一起工作这通常是一个标志,表明所使用的字体(在本例中为Arial)没有用于字符的字形。您可以通过粘贴1)arialuni.ttf的大小-千字节或兆字节?它应该是兆字节。2) 您的计算机上是否安装了中文(东亚字体)?@cup 22MB-我在本例中使用Arial,因为文字符号在记事本中正确显示为Arial。
public class test {
public static void main(String[] args) throws DocumentException, IOException {
final String text = "BMP: \u6d4b \u8bd5 Surrogate: \uD841\uDF0E \uD841\uDF31 \uD859\uDC02";
BaseFont baseFont = BaseFont.createFont("C:\\Windows\\Fonts\\arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font font = new Font(baseFont, 6.8f);
Document doc = new Document();
PdfWriter.getInstance(doc, new FileOutputStream("out.pdf"));
doc.open();
Paragraph p = new Paragraph();
p.add(new Phrase(text, font));
doc.add(p);
doc.close();
}
}