我一直在尝试使用Itext PDF writer创建PDF文件。我发现默认字体中不允许使用上标(0,4,5,6,7,8,9)和下标(0,1,2,3,4,5,6,7,8,9) 。在默认设置中,PDF文本中仅允许使用上标1,2,3。
我的PDF中的字符串包含下标和上标字符,有没有办法可以用PDF格式显示它们?
我搜索并发现:
或者其他方式,因为我必须显示化学符号,如H 2 SO 4,O 2等。
非常感谢,谢谢!
答案 0 :(得分:5)
请查看我在回答您的问题时所写的SubSuperScript
示例。我这样写H₂SO⁴:
BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font f = new Font(bf, 10);
Paragraph p = new Paragraph("H\u2082SO\u2074", f);
document.add(p);
我在维基百科上找到了特定字符的值:http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts
正如您所看到的,iText完全能够显示下标或上标中的特殊字符:sub_superscript.pdf
我写这个例子时遇到的主要问题是找到支持特定字形的字体。这就是我在之前评论中解释的内容。我最终使用了一种名为" Carbo Regular"。
的字体答案 1 :(得分:3)
我可以通过使用这段代码来解决问题:
我必须注册一个新字体“Arial Unicode MS”
FontFactory.register("Path/to/font/arial unicode ms.ttf","Arial Unicode MS");
然后在pdf中写作时我必须使用这个字体和我的字符串:
FontFactory.getFont("Arial Unicode MS",BaseFont.IDENTITY_H,BaseFont.EMBEDDED);