Itext PDF writer,有没有办法在pdf中允许unicode下标符号?(没有setTextRise)

nex*_*xus 2 java pdf unicode pdf-generation itext

我一直在尝试使用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显示它们?

我搜索并发现:

  1. setTextRise()方法用于改变文本相对于当前行的位移,我不能使用它,因为我不知道哪些字符是超级/子脚本.
  2. 是否有设置将文本的编码/字体更改为UTF-8,以便它允许所有的unicode符号?

或者其他方式,因为我必须显示化学符号,如H 2 SO 6,O 2等.

这对你有很大的帮助,谢谢!

Bru*_*gie 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);
Run Code Online (Sandbox Code Playgroud)

我在维基百科上找到了特定字符的值:http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts

如您所见,iText完全能够显示下标或上标中的特殊字符:sub_superscript.pdf

我写这个例子时遇到的主要问题是找到支持特定字形的字体.这就是我在之前的评论中解释的内容.我最终使用了一种名为"Carbo Regular"的字体.