gpt4 book ai didi

tcpdf - 在 TCPDF 中嵌入字体

转载 作者:行者123 更新时间:2023-12-05 04:01:05 27 4
gpt4 key购买 nike

我已经通读了之前关于该主题的主题,但都是陈旧的、未回答的和/或关于创建自定义字体的更具体的内容。

在 TCPDF 中:

$pdf->SetFont('times', '', 10);

我创建的 pdf 看起来很棒。只是 BarnesAndNoble 说我提交的 PDF 不包含“嵌入字体”。 Kindle 也这么说,但他们随后为我嵌入了它们。接下来我要尝试 LuLu,但我想先处理 BN.com。

举个例子:

$fontname = $pdf->addTTFfont('/fonts/arial.ttf', '', '', 32);

...但没有继续说明如何处理“$fontname”。也不是“32”具体代表什么,或者“32”是否有更好的选择。或者,如果确实嵌入了字体!

我的虚拟主机说我的字体路径是:

/usr/share/fonts/default/Type1

...也许然后(区分大小写??):

/usr/share/fonts/default/Type1/Helvetica

我需要正确嵌入我的字体!

最佳答案

TCPDF 将自动嵌入您自己添加的字体。我相当肯定,假定大多数操作系统都已经提供了 Times、Helvetica 和 Courier,因此 TCPDF 没有嵌入它们。因此,在您的情况下,如果您添加 TTF 字体,TCPDF 应该在使用时识别并自动嵌入字体定义。

此外,您只需要执行 $fontname = $pdf->addTTFfont('/fonts/arial.ttf', '', '', 32); 一次,这样您就可以运行一次脚本,然后注释掉该行。


直接来自 documentation ;

AddFont( $family, $style = '', $fontfile = '', $subset = 'default' )

导入 TrueType、Type1、核心或 CID0 字体并使其可用。需要先生成一个字体定义文件(阅读/fonts/utils/README.TXT)。定义文件(以及嵌入时的字体文件本身)必须存在于当前目录或 K_PATH_FONTS 指示的目录中(如果定义了常量)。如果找不到,则会生成错误“无法包含字体定义文件”。

参数

$家庭-字体系列。名称可以任意选择。如果是标准的姓氏,会覆盖对应的字体。

$style - 字体样式。可能的值是(不区分大小写):

  • 空字符串:常规(默认)
  • B:粗体
  • 我:斜体
  • BI 或 IB:粗斜体

$fontfile - 字体定义文件。默认情况下,名称是根据系列和样式构建的,小写且没有空格。

$subset - 如果为 true,则只嵌入字体的一个子集(只存储与使用的字符相关的信息);如果 false 嵌入完整字体;如果“默认”使用使用 setFontSubsetting() 设置的默认值。此选项仅对 TrueTypeUnicode 字体有效。如果要允许用户更改文档,请将此参数设置为 false。如果您对字体进行子集化,那么接收您的 PDF 的人将需要拥有与您相同的字体才能对您的 PDF 进行更改。 PDF 的文件大小也会更小,因为您只嵌入了字体的一部分。

返回 - 包含字体数据的数组,如果出错则返回 false。

自1.5看TCPDF::SetFont(), TCPDF::setFontSubsetting()公开


关于tcpdf - 在 TCPDF 中嵌入字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55620976/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com