如何将TTF字体添加到html2pdf PHP程序中

时间:2015-01-25 16:55:29

标签: php true-type-fonts html2pdf

我正在尝试将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文件中?

3 个答案:

答案 0 :(得分:10)

我已设法使用以下方法为我的设置添加1个自定义字体。

首先使用以下内容将.ttf文件转换为3个单独的文件(.php .z和.ufm) font converter  将此系统生成的3个文件放入TCPDF中的fonts文件夹中。

现在,您可以使用以下命令

设置PDF的默认字体
$html2pdf->setDefaultFont("the_name_you_called_your_font");

这很简单,但是通过这种方法使用2个单独的字体时遇到了问题。我会弄明白的但是

答案 1 :(得分:3)

要在转换字体时展开所选答案(按o11y_75),您需要使用特定名称来包含粗体和斜体变体。 这样,您只需添加一个这样的字体定义

$html2pdf->AddFont('opensans', 'normal', 'opensans.php');
$html2pdf->setDefaultFont('opensans');

转换字体时,请将它们命名为,例如:

default: opensans
bold: opensansb
italic: opensansi
bold italic: opensansbi

请注意,在原始名称后面,您可以在每个案例中添加b,i和bi。 我没有找到关于这个问题的文档,但我遵循TCPDF已经附带的字体上的命名法并且它有效。

答案 2 :(得分:1)

如果您想添加多种字体,请使用:

$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>