我有一个wordpress插件,可以使用TCPDF生成PDF收据。尽管希腊语文本显示为DejaVuSans,但当字体设置为Helvetica时,它会显示问号(???)。 这更像是一个美容问题,因为DejaVuSans有点难看,它似乎不支持斜体或强烈的风格。 我检查了tcpdf的fonts文件夹的内容,我可以看到确实安装了helvetica字体。
欢迎任何想法和/或建议。
答案 0 :(得分:1)
但据我所知,这个答案是正确的,但我不是这方面的专家。另外,在提及TCPDF时,我指的是“旧版本”,而不是正在开发的新版本。
Helvetica是与大多数PDF阅读器兼容的标准14或核心字体之一。这意味着字体通常可以在PDF中使用,而无需将其嵌入PDF文档中。您可以在TCPDF documentation中看到核心字体列表。 TCPDF字体目录中的“helvetica.php”文件不是 Helvetica字体的副本。该文件只是字体described here的描述。
使用这些核心字体的缺点是您依赖于每个用户的PDF阅读器附带的字体版本或安装在他们的系统上。根据这个Wikipedia article,一些PDF阅读器将替换类似的字体,这些字体通常具有不同的字符集。我认为这是为了节省非开源字体的许可费用。
在您的情况下,我猜您的PDF阅读器没有使用计算机上其他地方安装的相同字体。它可能使用的替换字体不是Linotype Design Studio设计的Helvetica®字体。
我在过去遇到过类似的情况,并通过在文档中嵌入一个免费的开源字体来解决它。这包括创建永远不会安装在用户计算机上的自定义字符。 PDF阅读器将使用文档中嵌入的字体来呈现PDF。嵌入过程要求您在使用TCPDF生成文档之前首先使用TCPDF addTTFfont()方法转换字体的TTF文件。
TCPDF documentation以及有关字体转换的相关答案中讨论了转换和嵌入字体:https://stackoverflow.com/a/19394545/9356981
许可和嵌入Helvetica字体是一种选择,但这可能会非常昂贵。您可能希望在包含希腊字符搜索过滤器的https://fonts.google.com等服务上搜索开源字体。