Как добавить шрифт TTF в PHP-программу 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?

6

Решение

Мне удалось добавить 1 пользовательский шрифт в мою настройку, используя следующий метод.

Сначала преобразуйте файл .ttf в 3 отдельных файла (.php .z и .ufm), используя следующие
конвертер шрифтов
Поместите 3 файла, сгенерированных этой системой, в папку шрифтов в TCPDF.

Теперь вы можете установить шрифт по умолчанию для вашего PDF, используя следующую команду

$html2pdf->setDefaultFont("the_name_you_called_your_font");

Это было довольно просто, чтобы работать, у меня проблемы с использованием 2 отдельных шрифтов, хотя с помощью этого метода. Я разберусь хоть

10

Другие решения

Чтобы развернуть выбранный ответ (o11y_75) при конвертации шрифтов, необходимо использовать определенное имя, чтобы включить варианты, выделенные жирным шрифтом и курсивом.
Таким образом, вы добавляете только одно определение шрифта, как это

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

Когда вы конвертируете шрифты, назовите их, например, так:

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

обратите внимание, что за исходным именем вы добавляете b, i и bi в каждом случае.
Я не нашел документации по этому вопросу, но я следовал номенклатуре, найденной на шрифтах, которые уже поставлялись с TCPDF, и это работало.

3

Если вы хотите добавить несколько шрифтов, просто используйте:

$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>
1
По вопросам рекламы [email protected]