检查可通过字体编码的字符的有效方法



检查字符是否可由字体编码的有效方法是什么?我们正在生成PDF,文本可以包含外来字符。这需要逐个字符检查其是否可按字体编码。

目前我正在使用PDFont.encode进行检查,但这里的字体需要加载到文档中,并且似乎没有内存效率。

PDFBox版本:2.0.9

您可以检查文本中的哪些字符在字体集中支持字形,如下所示:

public boolean isFontSupported(PDType0Font font, String text) {
try {
int offset = 0;
while (offset < text.length()) {
int codePoint = text.codePointAt(offset);
int gid = font.codeToGID(codePoint);
if (gid == 0) {
return false;
}
offset += Character.charCount(codePoint);
}
}
catch (Exception swallow) {
return false;
}
return true;
}

最新更新