如何将 TTF 字体添加到 html2pdf PHP 程序
How to add TTF font to html2pdf PHP program
我正在尝试通过以下代码使用 HTML2PDF 4.03:
<?php
$content = "..."; # my HTML code
require_once(dirname(__FILE__).'/html2pdf_v4.03/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4','en', true, 'utf-8', array(15,20,15,20) );
# here I'm trying to add my arial.ttf
$html2pdf->pdf->AddTTFFont('arial.ttf');
$html2pdf->WriteHTML($content);
$html2pdf->Output('exemple.pdf');
?>
现在程序死掉了:
PHP Fatal error: Call to undefined method HTML2PDF_myPdf::AddTTFFont()
如何将 TTF 字体添加到我的 PDF 文件?
我已成功使用以下方法将 1 种自定义字体添加到我的设置中。
首先将 .ttf 文件转换为 3 个单独的文件(.php .z 和 .ufm),使用以下命令
font converter
将本系统生成的3个文件放入TCPDF的fonts文件夹中。
现在您可以使用以下命令设置 PDF 的默认字体
$html2pdf->setDefaultFont("the_name_you_called_your_font");
这很容易上手,尽管通过这种方法我在使用 2 种不同的字体时遇到了问题。不过我会想办法的
如果要添加多种字体,只需使用:
$html2pdf->addFont('opensansregular', '', 'opensansregular');
$html2pdf->addFont('opensansbold', '', 'opensansbold');
我建议您不要将特殊字符与上面指定的字体转换器一起使用。
然后在您的 CSS 中输入:
<style type="text/css">
<!--
.uppercase {
text-transform: uppercase;
}
* {
font-family: opensansregular;
}
h1, h2, h3, strong {
font-family: opensansbold;
}
-->
</style>
要在转换字体时扩展所选答案(o11y_75),您需要使用特定名称来同时包含粗体和斜体变体。
这样一来,您只需添加一个这样的字体定义
$html2pdf->AddFont('opensans', 'normal', 'opensans.php');
$html2pdf->setDefaultFont('opensans');
转换字体时,给它们命名,例如,像这样:
default: opensans
bold: opensansb
italic: opensansi
bold italic: opensansbi
请注意,在原始名称后面,您在每种情况下都添加了 b、i 和 bi。
我没有找到关于这个问题的文档,但我遵循了 TCPDF 已经附带的字体上的命名法并且它起作用了。
HTML2PDF 在内部与 TCPDF 一起工作。
TCPDF 自版本 6.2.6 以来有自己的对象来创建 HTML2PDF 所需的字体:TCPDF_FONTS
我已经解决了这个问题如下:
我在供应商目录中搜索 TCPDF,并在那里找到了 Fonts 目录。
然后我创建了自己的单独的 PDF 脚本并使用它一次从 ttf 创建必要的字体文件。
usage: $fontname = TCPDF_FONTS::addTTFfont('vendor/tecnickcom/tcpdf/fonts/arialuni/arialuni.ttf', 'TrueTypeUnicode', '', 32);
有关详细信息,请参阅:
我正在尝试通过以下代码使用 HTML2PDF 4.03:
<?php
$content = "..."; # my HTML code
require_once(dirname(__FILE__).'/html2pdf_v4.03/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4','en', true, 'utf-8', array(15,20,15,20) );
# here I'm trying to add my arial.ttf
$html2pdf->pdf->AddTTFFont('arial.ttf');
$html2pdf->WriteHTML($content);
$html2pdf->Output('exemple.pdf');
?>
现在程序死掉了:
PHP Fatal error: Call to undefined method HTML2PDF_myPdf::AddTTFFont()
如何将 TTF 字体添加到我的 PDF 文件?
我已成功使用以下方法将 1 种自定义字体添加到我的设置中。
首先将 .ttf 文件转换为 3 个单独的文件(.php .z 和 .ufm),使用以下命令 font converter 将本系统生成的3个文件放入TCPDF的fonts文件夹中。
现在您可以使用以下命令设置 PDF 的默认字体
$html2pdf->setDefaultFont("the_name_you_called_your_font");
这很容易上手,尽管通过这种方法我在使用 2 种不同的字体时遇到了问题。不过我会想办法的
如果要添加多种字体,只需使用:
$html2pdf->addFont('opensansregular', '', 'opensansregular');
$html2pdf->addFont('opensansbold', '', 'opensansbold');
我建议您不要将特殊字符与上面指定的字体转换器一起使用。
然后在您的 CSS 中输入:
<style type="text/css">
<!--
.uppercase {
text-transform: uppercase;
}
* {
font-family: opensansregular;
}
h1, h2, h3, strong {
font-family: opensansbold;
}
-->
</style>
要在转换字体时扩展所选答案(o11y_75),您需要使用特定名称来同时包含粗体和斜体变体。 这样一来,您只需添加一个这样的字体定义
$html2pdf->AddFont('opensans', 'normal', 'opensans.php');
$html2pdf->setDefaultFont('opensans');
转换字体时,给它们命名,例如,像这样:
default: opensans
bold: opensansb
italic: opensansi
bold italic: opensansbi
请注意,在原始名称后面,您在每种情况下都添加了 b、i 和 bi。 我没有找到关于这个问题的文档,但我遵循了 TCPDF 已经附带的字体上的命名法并且它起作用了。
HTML2PDF 在内部与 TCPDF 一起工作。
TCPDF 自版本 6.2.6 以来有自己的对象来创建 HTML2PDF 所需的字体:TCPDF_FONTS
我已经解决了这个问题如下: 我在供应商目录中搜索 TCPDF,并在那里找到了 Fonts 目录。 然后我创建了自己的单独的 PDF 脚本并使用它一次从 ttf 创建必要的字体文件。
usage: $fontname = TCPDF_FONTS::addTTFfont('vendor/tecnickcom/tcpdf/fonts/arialuni/arialuni.ttf', 'TrueTypeUnicode', '', 32);
有关详细信息,请参阅: