TCPDF 不显示带有 Helvetica 的希腊字符
TCPDF not showing greek charactes with Helvetica
我有一个使用 TCPDF 生成 PDF 收据的 wordpress 插件。尽管希腊文本在 DejaVuSans 中显示正常,但当字体设置为 Helvetica 时它显示问号 (???)。
这更像是一个外观问题,因为 DejaVuSans 有点丑,而且它似乎不支持斜体或强烈的风格。
我检查了tcpdf的字体文件夹的内容,我可以看到确实安装了helvetica字体。
欢迎提出任何想法and/or建议。
据我所知,这个答案是正确的,但我不是这方面的专家。另外,我说的TCPDF是指"old version",而不是正在开发中的新版本。
为什么会这样
Helvetica 是应该与大多数 PDF reader 兼容的标准 14 种或核心字体之一。这意味着这些字体通常可以在 PDF 中使用,而无需将其嵌入到 PDF 文档中。您可以在 TCPDF documentation. The "helvetica.php" file in the TCPDF fonts directory is not a copy of the Helvetica font. The file is only a description of the font as described here 中看到核心字体列表。
使用这些核心字体的缺点是您依赖于每个用户的 PDF reader 中包含的或安装在他们的系统上的字体版本。根据此 Wikipedia article,某些 PDF reader 将替换相似的字体,并且这些字体通常具有不同的字符集。我认为这样做是为了节省非开源字体的许可费用。
根据您的情况,我猜测您的 PDF reader 使用的字体与您计算机上其他地方安装的字体不同。很可能使用的替代字体不是 Linotype Design Studio 设计的 Helvetica® 字体。
解决方案
我以前遇到过类似的情况,通过在文档中嵌入免费的开源字体解决了这个问题。这包括创建永远不会安装在用户计算机上的自定义字符。 PDF readers 将使用文档中嵌入的字体来呈现 PDF。嵌入过程要求您首先使用 TCPDF addTTFfont() 方法转换字体的 TTF 文件,然后再使用 TCPDF 生成文档。
转换和嵌入字体在 TCPDF documentation and in this related answer about font conversion:
中讨论
许可字体
许可和嵌入 Helvetica 字体是一种选择,但这可能会非常昂贵。您可能希望在 https://fonts.google.com 等服务上搜索开源字体,其中包含希腊字符搜索过滤器。
我有一个使用 TCPDF 生成 PDF 收据的 wordpress 插件。尽管希腊文本在 DejaVuSans 中显示正常,但当字体设置为 Helvetica 时它显示问号 (???)。 这更像是一个外观问题,因为 DejaVuSans 有点丑,而且它似乎不支持斜体或强烈的风格。 我检查了tcpdf的字体文件夹的内容,我可以看到确实安装了helvetica字体。
欢迎提出任何想法and/or建议。
据我所知,这个答案是正确的,但我不是这方面的专家。另外,我说的TCPDF是指"old version",而不是正在开发中的新版本。
为什么会这样
Helvetica 是应该与大多数 PDF reader 兼容的标准 14 种或核心字体之一。这意味着这些字体通常可以在 PDF 中使用,而无需将其嵌入到 PDF 文档中。您可以在 TCPDF documentation. The "helvetica.php" file in the TCPDF fonts directory is not a copy of the Helvetica font. The file is only a description of the font as described here 中看到核心字体列表。
使用这些核心字体的缺点是您依赖于每个用户的 PDF reader 中包含的或安装在他们的系统上的字体版本。根据此 Wikipedia article,某些 PDF reader 将替换相似的字体,并且这些字体通常具有不同的字符集。我认为这样做是为了节省非开源字体的许可费用。
根据您的情况,我猜测您的 PDF reader 使用的字体与您计算机上其他地方安装的字体不同。很可能使用的替代字体不是 Linotype Design Studio 设计的 Helvetica® 字体。
解决方案
我以前遇到过类似的情况,通过在文档中嵌入免费的开源字体解决了这个问题。这包括创建永远不会安装在用户计算机上的自定义字符。 PDF readers 将使用文档中嵌入的字体来呈现 PDF。嵌入过程要求您首先使用 TCPDF addTTFfont() 方法转换字体的 TTF 文件,然后再使用 TCPDF 生成文档。
转换和嵌入字体在 TCPDF documentation and in this related answer about font conversion:
中讨论许可字体
许可和嵌入 Helvetica 字体是一种选择,但这可能会非常昂贵。您可能希望在 https://fonts.google.com 等服务上搜索开源字体,其中包含希腊字符搜索过滤器。