TCPDF 未使用 Helvetica 显示希腊字符

     2023-03-15     190

关键词:

【中文标题】TCPDF 未使用 Helvetica 显示希腊字符【英文标题】:TCPDF not showing greek charactes with Helvetica 【发布时间】:2018-07-27 07:18:57 【问题描述】:

我有一个 wordpress 插件,它使用 TCPDF 生成 PDF 收据。尽管 DejaVuSans 的希腊文本显示 OK,但当字体设置为 Helvetica 时,它显示问号 (???)。 这更像是一个外观问题,因为 DejaVuSans 有点丑,而且它似乎不支持斜体或强烈的样式。 我检查了 tcpdf 的字体文件夹的内容,我可以看到确实安装了 helvetica 字体。

欢迎任何想法和/或建议。

【问题讨论】:

Helvetica 甚至支持希腊字符吗? 嗯,在我的 Mac 上可以 【参考方案1】:

据我所知,此答案是正确的,但我不是该主题的专家。另外,我在提到 TCPDF 时指的是“旧版本”,而不是正在开发中的新版本。

为什么会这样

Helvetica 是标准 14 或核心字体之一,应该与大多数 PDF 阅读器兼容。这意味着这些字体通常可以在 PDF 中使用,而无需将其嵌入 PDF 文档中。您可以在TCPDF documentation 中看到核心字体列表。 TCPDF 字体目录中的“helvetica.php”文件不是 Helvetica 字体的副本。该文件只是对字体的描述,为described here。

使用这些核心字体的缺点是您依赖于每个用户的 PDF 阅读器中包含或安装在他们的系统上的字体版本。根据Wikipedia article,一些 PDF 阅读器会替换相似的字体,这些字体通常会有不同的字符集。我认为这样做是为了节省非开源字体的许可费用。

在您的情况下,我猜您的 PDF 阅读器使用的字体与您计算机上其他地方安装的字体不同。它可能使用了不是由 Linotype Design Studio 设计的Helvetica® 字体的替代字体。

解决方案

我以前也遇到过类似的情况,通过在文档中嵌入免费的开源字体解决了。这包括创建永远不会安装在用户计算机上的自定义字符。 PDF 阅读器将使用文档中嵌入的字体来呈现 PDF。嵌入过程要求您首先使用 TCPDF addTTFfont() 方法转换字体的 TTF 文件,然后再使用 TCPDF 生成文档。

在TCPDF documentation 和有关字体转换的相关答案中讨论了转换和嵌入字体:https://***.com/a/19394545/9356981

许可字体

许可和嵌入 Helvetica 字体是一种选择,但这可能会非常昂贵。您可能希望在 https://fonts.google.com 等服务上搜索开源字体,其中包含希腊字符搜索过滤器。

【讨论】:

虽然进一步调查这件事会很有趣,但它不会提供解决方案。即使我找到并安装了与 TCPDF 兼容的 Helvetica 字体,也不是所有网站用户都会打扰。所以我想我被 DejaVuSans 困住了。 更准确一点:根据 ISO 32000-1,所有 PDF 阅读器都必须支持标准的 14 种字体(这些字体,或者它们的字体规格和合适的替代字体,应可用于符合标准的阅读器。)但仅适用于拉丁编码(“拉丁字符集和编码”,描述 Adob​​e 标准拉丁文本字体的整个字符集。此字符集应受 Times、Helvetica、和 Courier 字体系列,属于标准的 14 种预定义字体)。 @Manos 在文档中嵌入字体将允许每个人查看 PDF 并按照您的预期查看字符,而无需在他们的系统上安装它。 TCPDF 自带的非标准 DejaVuSans 字体已经转换好,每次使用时都会嵌入到文档中。开发人员已包含 addTTFfont() 方法,因此您可以对任何 TTF 格式的可用字体执行相同操作。我已经编辑了我的答案,并提供了一些关于查找和转换最适合您的目的的字体的附加信息。

未使用 tcpdf 自定义字体

】未使用tcpdf自定义字体【英文标题】:tcpdfcustomfontisnotbeingused【发布时间】:2013-07-2706:12:04【问题描述】:我正在使用TCPDF库通过PHP生成PDF文件。我想使用自定义字体,所以我使用addTTFfontmethod添加我的自定义TrueType字体文件。我... 查看详情

在视图中使用表时的 TCPDF“未定义索引:cols”

】在视图中使用表时的TCPDF“未定义索引:cols”【英文标题】:TCPDF"Undefinedindex:cols"whenusingtablesinview【发布时间】:2012-01-3008:06:49【问题描述】:我正在使用CakePHP1.3制作一个在线应用系统。我尝试使用基于视图的TCPDF打印... 查看详情

希腊语本地化未显示在应用商店中

】希腊语本地化未显示在应用商店中【英文标题】:Greeklocalizationnotshowninappstore【发布时间】:2012-10-1811:45:51【问题描述】:我上传了一个应用程序,最近我尝试对其进行本地化。默认语言是英语,但我也想要希腊语(该应用程... 查看详情

tcpdf 中的 HTML 实体

...ntcpdf【发布时间】:2012-09-2507:11:09【问题描述】:我正在使用tcpdf生成pdf,但是在显示其中包含html实体的字符串时遇到了问题。例如,字符串RAHİB显示为RAH?B而我只想解码此实体并将其显示为RAHİB。我使用UTF-8作为字符... 查看详情

使用 Gmail API 发送电子邮件,在正文中编码希腊字符

】使用GmailAPI发送电子邮件,在正文中编码希腊字符【英文标题】:SendingEmailwithGmailAPI,EncodingGreekcharactersinbody【发布时间】:2019-08-1912:37:55【问题描述】:我正在更新用于发送电子邮件的应用程序以使用GMAILAPI而不是SMTP。我遇到... 查看详情

TCPDF - 在 iPad 上查看 PDF 时不显示嵌入的 ttf 字体

...发布时间】:2013-02-2305:01:48【问题描述】:我创建了一个使用tcpdf动态创建PDF并将字体嵌入PDF的网站。用户可以从一系列标准字体中进行选择,如Arial、Verdana等。然后系统直接从我的服务器中选择一个ttf字体并使用下面的代码嵌 查看详情

TCPDF 创建 PDF 耗时太长,此时如何显示加载效果

...题描述】:我有一个锚标记,带有指向页面的href,它将使用TCPDF生成PDF。生成PDF需要花费太多时间。同时界面页面保持不变,它在浏览器标题栏顶部显示一个加载图标。如何在界面上显示 查看详情

CMYK 图像使用 TCPDF 变为负片

】CMYK图像使用TCPDF变为负片【英文标题】:CMYKimagesturnnegativewithTCPDF【发布时间】:2014-07-0620:57:53【问题描述】:我在使用TCPDF生成包含CMYKPNG文件的PDF图像时遇到问题。系统允许用户上传照片,可以是JPG、GIF或PNG。ImageMagick在必要... 查看详情

使用 Altair 和 Jupyter 绘图时如何在轴标签中显示希腊字母?

】使用Altair和Jupyter绘图时如何在轴标签中显示希腊字母?【英文标题】:HowtodisplayGreeklettersinAxislabelswhenplottingwithAltairandJupyter?【发布时间】:2018-04-3012:25:05【问题描述】:如何在Altair中写希腊字母?我需要为轴标签使用一些符... 查看详情

TCPDF:为啥即使单击不同单元格的按钮,“生成 pdf”按钮也会显示相同的数据?

...据?【发布时间】:2022-01-2020:18:41【问题描述】:我正在使用 查看详情

sqlcmd 实用程序不显示希腊字母

...ers【发布时间】:2016-09-0707:37:54【问题描述】:首先,我使用的是SQLServer9.00.4035.00,即SQLServer2005SP3。我正在使用以下命令从一个视图中获取结果,该视图从一个表中获取行,该表中包含带有英文或希腊字符的列。sqlcmd-W-SSERVER_NAM... 查看详情

无法显示希腊字符 .mdb 文件(PHP 和 ODBC)

...007表中的列中的文本时遇到问题,该表是希腊语。我正在使用PHP和$dbc=@odbc_pconnect("Driver=MicrosoftAccessDriver(*.mdb 查看详情

phptcpdf怎么使用中文乱码

tcpdf中文解决方案步骤如下:1.确保你测试tcpdf能正常输出英文内容的pdf2.测试输入中文内容后显示是?的乱码或者空白分析原因,是因为我们输入的中文,tcpdf字体库并不支持,因此乱码或者空白显示添加一个合适的字体即可另... 查看详情

如何在 Visual Studio 2008 和 C++ 中显示希腊字符? [复制]

...uplicate]【发布时间】:2014-12-2806:16:11【问题描述】:如何使用纯C++和VS2008Express显示希腊字符和字符串?代码如下:#include<iostream>intmain()std::cout 查看详情

发送带有希腊字符的电子邮件无法正确显示(使用html,javascript,php)

...Outlook,其中包含我填写表单的详细信息。我知道我必须使用某种编码,但我无法让它工作。我从我的代码修改了它,用你在contact.html上开始的实际代码,你输入你的详细信息,然后你点击提交和form.php打开,显示数据,它有隐藏... 查看详情

从旧的 Access 数据库导出时,希腊字符显示为问号或方框

...库中导出数据并将它们保存为文本文件中的ascii。我正在使用UCanAccessJDBC驱动程序,当我在文件中写入希腊字符 查看详情

在 tkinter 中输入希腊字符

...【问题描述】:我正在尝试编写一个界面(在Python3.8中,使用tkinter)来接受希腊语文本(在Windows10中使用希腊语多调键盘键入)。但是,Entry和Text不会接受所有键入的希腊字符:可以单独键入希腊字母,但如果我尝试键入除尖... 查看详情

TCPDF 自定义页面大小

...-2607:36:20【问题描述】:tcpdf网站上的Thisexample展示了如何使用A4、A5等页面格式,但我如何将tcpdf设置为使用175毫米x266毫米等自定义尺寸?解决方案赞赏。【问题讨论】:【参考方案1】:不需要编辑类...tcpdf不接受宽度/长度参数... 查看详情