pdflib - 有没有办法判断字体是否支持中文

pdflib - Is there a way to tell if a font supports Chinese

我用Arial Black写文字的时候,发现中文不行,所以想知道有没有办法判断一个字体是否支持中文

关于字体的一般说明:

并非所有字体都包含所有字形。所以预计您不能在整个 Unicode 范围内使用单一字体。您应该首先找到满足您的视觉要求并包含字形的字体。许多字体系列针对不同的 Unicode 范围有多种规范。您应该首先找到满足您的视觉要求并包含字形的字体。许多字体系列针对不同的 Unicode 范围有多种变体。最好联系您的字体供应商以获得正确的字体文件。或者您可以使用免费但非常完整的字体系列,例如 Noto.

当然,您可以使用 PDFlib 检查字体中字形的可用性。这在 PDFlib 说明书主题 glyph availability:

中进行了演示
gid = (int) p.info_font(font, "glyphid", "unicode=" + t.character);

基于此,您可以确定字体是否包含您需要的字形。有关详细信息,另请参阅 PDFlib 9.3.0 教程第 6.6.2 章“Font-specific 编码、Unicode 和字形名称查询”。

也与您的问题相关,您可以检查后备字体技术以链接多种字体以获得更大的字形集。请参阅 PDFlib 9.3.0 教程,第 6.4.6 章“后备字体”,以及包含的入门示例 starter_fallback,也可在 PDFlib cookbook .

I have try 'int error_font = p.load_font("Arial Black","", "replacementchar=error");

一旦出现异常,您将无法再使用 PDFlib 对象。有关此重要主题的详细信息,请参阅 PDFlib 9.3.0 教程的第 3.1.1 章“异常处理”。 您可以在“doc”目录下的所有 PDFlib 下载包中找到 PDFlib 9.3.0 教程,也可以在 PDFlib 9.3 Download page 上单独找到 link.