【发布时间】:2012-07-23 18:13:22
【问题描述】:
我正在尝试像这样在我的 pdf 中插入一个复选框字符:
Phrase phrase = new Phrase("\u2610 somemoretext", somefont);
字符串的“somemoretext”部分显示正确,复选框字符未正确显示。我是否必须为此角色使用特定的字体,否则我可能做错了什么?
【问题讨论】:
我正在尝试像这样在我的 pdf 中插入一个复选框字符:
Phrase phrase = new Phrase("\u2610 somemoretext", somefont);
字符串的“somemoretext”部分显示正确,复选框字符未正确显示。我是否必须为此角色使用特定的字体,否则我可能做错了什么?
【问题讨论】:
您必须使用包含这些字符的字体和编码。最好的办法是使用 IDENTITY_H 进行编码,因为这可以让您访问给定字体中的每个字符:
Font font = FontFactory.getFont(f.getName(),BaseFont.IDENTITY_H);
但您仍然必须使用正确的字体。 This 链接也可以证明对你有帮助
编辑:
我还看到不同的Fonts 使用不同的转换代码/序列:
使用不同字体的对应字符。例如在 Wingdings.ttf 你有 0x6F 和 0x70
【讨论】:
String,它是字体系列的名称,即getFont(FontFactory.HELVETICA,13),其中FontFactory.HELVETICA 是字体系列名称,13 是字体的大小字体。阅读他们将帮助您了解方法等必要参数的文档。另一个例子是FontFactory.getFont("Arial", 8, Font.ITALIC)
var font = FontFactory.GetFont(@"C:\Windows\Fonts\wingding.ttf", BaseFont.CP1252, true, 12);
Phrase phrase = new Phrase("\xFC somemoretext", font);
灵感来自 https://stackoverflow.com/a/5044017/1021364
人物地图
检查:FB
打勾:FC
勾选复选框:FD
勾选复选框:FE
空复选框:6F
【讨论】: