使用来自maven repo https://mvnrepository.com/artifact/com.itextpdf/itextpdf/5.5.11
的iText 5.5.11public 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();
}
}
基本多语言平面中的非代理字符在结果pdf上呈现,但代理字符不是。
编辑:还尝试使用字体“STSong-Light”编码“UniGB-UCS2-H”(如书中的示例)。相同的结果 - 缺少代理人物。
Edit2:让它与“SimSun-ExtB”字体一起使用
答案 0 :(得分:1)
这通常表示正在使用的字体(在本例中为Arial)没有字符的字形。