java - Itext PDF writer,有什么方法可以在pdf中允许unicode下标符号吗? (没有 setTextRise)

标签 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 符号?

或者其他方式,因为我必须显示化学符号,如 H2SO⁴、O2 等。

这会很有帮助,谢谢!

最佳答案

请查看 SubSuperScript我在回答你的问题时写的例子。我这样写 H2SO⁴:

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”的字体。

关于java - Itext PDF writer,有什么方法可以在pdf中允许unicode下标符号吗? (没有 setTextRise),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24772212/

相关文章:

java - Android:当 SearchView 的内容随 Google Places API 的结果更改时更新 ListView

c# - iTextSharp : How to add image of PDF as movable element?

pdf - 表单提交后的确认对话框(警报)

R pdf() 在函数() 中的用法

python - json 网页的 Unicode 解码错误

使用 unicode 的 java 客户端和 C# 服务器

java - Android 应用程序,xml 文件错误 :(

java - 想要用java在窗口上创建鼠标点击

java - JFreeChart:使用 ChartMouseEvent 在散点图上显示数据

c++ - 在 Windows 控制台应用程序中输出 unicode 字符串