2015-01-25 23 views
6

Sto cercando di utilizzare HTML2PDF 4.03 con questo codice:Come aggiungere carattere TTF al programma PHP html2pdf

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

Ora il programma di morire con questo:

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

Come posso aggiungere TTF carattere al mio file PDF?

risposta

7

Sono riuscito ad aggiungere 1 carattere personalizzato al mio setup utilizzando il seguente metodo.

prima convertire il file .ttf a 3 file separati (.php .ze .ufm) utilizzando il seguente font converter Posizionare i 3 file che vengono generati da questo sistema in cartella di caratteri in TCPDF.

Ora è possibile impostare il font predefinito per i file PDF utilizzando il seguente comando

$html2pdf->setDefaultFont("the_name_you_called_your_font"); 

Questo è stato abbastanza semplice da far funzionare, sto avendo problemi con i font 2 separate anche se con questo metodo. Io capirlo se

1

Se si desidera aggiungere più tipi di carattere, basta usare:

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

vorrei suggerire che non si utilizzano i caratteri speciali con il convertitore di font specificato sopra.

Poi nel CSS semplicemente digitare:

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

L'ho provato ma non funziona. Ho due font nella mia cartella tcpdf/fonts. Entrambi funzionano quando li aggiungo come predefinito. Diciamo: '$ html2pdf-> setDefaultFont (" francoisone ");'. Ma quando provo questo: '$ html2pdf-> setDefaultFont ('OpenSans'); $ html2pdf-> addFont ('francoisone', '', 'francoisone'); ', non posso usare' font-family: francoisone; 'nel mio css. C'è qualcosa di sbagliato nel mio setup? –

+0

Hai convertito i tuoi font, vero? –

+0

Sì, ho convertito 'FrancoisOne.ttf'to' francoisone.afm, francoisone.php, francoisone.z'. E funziona come DefaultFont. Ma non come addFont, quando chiamato via CSS 'h1, h2, h3, h4 {font-family: francoisone;}' –

1

Per espandere sulla risposta selezionata (da o11y_75) quando si converte i font, è necessario utilizzare un nome specifico per includere anche le varianti grassetto e in corsivo. In questo modo, si aggiunge solo una definizione di carattere come questo

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

Quando si converte i caratteri, assegnare loro un nome, ad esempio, come questi:

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

avviso che dietro il nome originale, si aggiunge b, io e bi su ogni caso. Non ho trovato alcuna documentazione su questo problema, ma ho seguito la nomenclatura trovata sui caratteri che erano già presenti con TCPDF e ha funzionato.