2015-01-25 3 views
6

Я пытаюсь использовать HTML2PDF 4,03 с этим кодом:Как добавить TTF шрифт HTML2PDF PHP программы

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

ответ

7

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

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

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

$html2pdf->setDefaultFont("the_name_you_called_your_font"); 

Это было довольно просто получить работу, я имею проблемы с использованием 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> 
+0

Я пробовал, но он не работает. У меня есть два шрифта в папке tcpdf/fonts. Оба работают, когда я добавляю их по умолчанию. Скажем: '$ html2pdf-> setDefaultFont (" francoisone ");'. Но когда я пробую это: '$ html2pdf-> setDefaultFont ('OpenSans'); $ html2pdf-> addFont ('francoisone', '', 'francoisone'); ', я не могу использовать' font-family: francoisone; 'в моем css. Что-то не так с моей настройкой? –

+0

Вы изменили свои шрифты, не так ли? –

+0

Да, я конвертирую 'FrancoisOne.ttf'to' francoisone.afm, francoisone.php, francoisone.z'. И он работает как DefaultFont. Но не как addFont, когда вызывается через CSS 'h1, h2, h3, h4 {font-family: francoisone;}' –

1

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

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

При преобразовании шрифтов, назовите их, например, как эти:

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

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

Смежные вопросы