2015-01-25 28 views
6

Próbuję użyć HTML2PDF 4.03 z tym kodem:Jak dodać czcionkę TTF do HTML2PDF programu 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'); 
?> 

Teraz program umiera z tego:

PHP Fatal error: Call to undefined method HTML2PDF_myPdf::AddTTFFont() 

Jak mogę dodać TTF czcionka do mojego pliku PDF?

Odpowiedz

7

Udało mi się dodać 1 niestandardową czcionkę do mojej konfiguracji za pomocą poniższej metody.

najpierw przekonwertować plik .ttf do 3 oddzielnych plikach (.php .z i .ufm) za pomocą następującego font converter Umieścić 3 pliki, które są generowane przez ten system do folderu czcionek w TCPDF.

Teraz można ustawić domyślną czcionkę dla formatu PDF za pomocą następującego polecenia

$html2pdf->setDefaultFont("the_name_you_called_your_font"); 

To było dość proste, aby dostać pracę, Mam problemy przy użyciu 2 oddzielne czcionek choć za pośrednictwem tej metody. Będę zrozumieć to chociaż

1

Jeśli chcesz dodać wiele czcionek, wystarczy użyć:

$html2pdf->addFont('opensansregular', '', 'opensansregular'); 
$html2pdf->addFont('opensansbold', '', 'opensansbold'); 

Proponuję, aby nie używać specjalnych znaków z konwerterem czcionki określonego powyżej.

Następnie w CSS wystarczy wpisać:

<style type="text/css"> 
<!-- 
.uppercase { 
    text-transform: uppercase; 
} 
* { 
    font-family: opensansregular; 
} 
h1, h2, h3, strong { 
    font-family: opensansbold; 
} 
--> 
</style> 
+0

Próbowałem, ale to nie działa. Mam dwie czcionki w folderze tcpdf/fonts. Oba działają, gdy dodaję je jako domyślne. Powiedzmy: '$ html2pdf-> setDefaultFont (" francoisone ");'. Ale kiedy próbuję tego: '$ html2pdf-> setDefaultFont ('OpenSans'); $ html2pdf-> addFont ('francoisone', '', 'francoisone'); ', nie mogę użyć' font-family: francoisone; 'w moim css. Czy coś jest nie tak z moją konfiguracją? –

+0

Przekonwertowałeś swoje czcionki, prawda? –

+0

Tak, nawracam 'FrancoisOne.ttf'to' francoisone.afm, francoisone.php, francoisone.z'. I działa jako DefaultFont. Ale nie jako addFont, gdy wywoływany jest przez CSS 'h1, h2, h3, h4 {font-family: francoisone;}' –

1

Aby rozwinąć na wybranej odpowiedzi (przez o11y_75) podczas konwersji czcionek, należy użyć określonej nazwy obejmować także pogrubienie i kursywa warianty. ten sposób, trzeba tylko dodać jedną definicję czcionki jak ta

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

Podczas konwersji czcionek, nazwać je, na przykład, takie jak:

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

informuje, że za oryginalną nazwą, należy dodać b, i i bi w każdym przypadku. Nie znalazłem dokumentacji dotyczącej tego problemu, ale zastosowałem się do nomenklatury znalezionej na czcionkach, które już zostały dostarczone z TCPDF i działały.