2015-01-25 11 views
6

Ich versuche hinzuzufügen HTML2PDF 4.03 mit diesem Code zu verwenden:Wie TTF-Schriftart html2pdf PHP-Programm

<?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'); 
?> 

Jetzt wird das Programm sterben mit diesem:

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

Wie kann ich TTF hinzufügen Schrift in meine PDF-Datei?

Antwort

7

Ich habe es geschafft, mit der folgenden Methode eine benutzerdefinierte Schriftart zu meinem Setup hinzuzufügen.

zuerst die .ttf-Datei in drei separate Dateien konvertieren (.php .z und .ufm) mit dem folgenden font converter Legen Sie die drei Dateien, die in TCPDF Ordner durch dieses System in die Schriftarten erzeugt werden.

Jetzt können Sie die Standardschriftart für Ihre PDF setzen Sie den folgenden Befehl

$html2pdf->setDefaultFont("the_name_you_called_your_font"); 

Das war ziemlich einfach zu arbeiten, ich Fragen habe über diese Methode mit 2 separaten Fonts though. Ich werde es herausfinden, wenn

1

Wenn Sie mehrere Schriftarten hinzufügen möchten, benutzen Sie einfach:

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

Ich würde vorschlagen, dass Sie nicht Sonderzeichen mit der Schriftart-Konverter oben angegebenen verwenden Sie. Typ

Dann einfach in Ihrem CSS:

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

Ich habe es versucht, aber es funktioniert nicht. Ich habe zwei Schriften in meinem Tcpdf/Fonts-Ordner. Beide funktionieren, wenn ich sie als Standard hinzufüge. Sagen wir: '$ html2pdf-> setDefaultFont (" francoisone ");'. Aber wenn ich das versuche: '$ html2pdf-> setDefaultFont ('OpenSans'); $ html2pdf-> addFont ('francoisone', '', 'francoisone'); ', Ich kann nicht' font-family: francoisone; 'in meinem css verwenden. Stimmt etwas nicht mit meinem Setup? –

+0

Sie haben Ihre Schriftarten konvertiert, oder? –

+0

Ja, ich konvertiere "FrancoisOne.ttf'to' francoisone.afm, francoisone.php, francoisone.z'. Und es funktioniert als DefaultFont. Aber nicht als addFont, wenn über CSS 'h1, h2, h3, h4 {font-family: francoisone;}' aufgerufen wird –

1

auf die gewählte Antwort erweitern (von o11y_75), wenn Sie Ihre Schriften konvertieren, müssen Sie einen bestimmten Namen verwenden, auch die Fett- und Kursivvarianten erweitert. Auf diese Weise fügen Sie nur eine Schriftart Definition wie diese

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

Wenn Sie die Schriften konvertieren, benennen, zum Beispiel, wie diese:

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

bemerkt, dass hinter dem ursprünglichen Namen, die Sie hinzufügen b, i und bi auf jeden Fall. Ich habe keine Dokumentation zu diesem Thema gefunden, aber ich folgte der Nomenklatur, die auf den Schriften gefunden wurde, die bereits mit TCPDF geliefert wurden und es funktionierte.