2015-04-27 16 views
6

Vorrei aggiungere un carattere personalizzato a un PDF che sto generando utilizzando TCPDF. Potrei mancare qualcosa ma lo the docs sembra essere obsoleto. Stanno facendo riferimento alla funzione addTTFfont() ma penso che sia stata deprecata e non esista più nell'ultima versione di TCPDF.Come si aggiungono i caratteri personalizzati in TCPDF?

ho letto che ho bisogno di convertire il file TTF e metterlo in cartella di caratteri così mi sono imbattuto:

php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf 

e ha generato questi file che sono ora nella cartella dei font:

rumpelstiltskinwebfont.ctg.z 
rumpelstiltskinwebfont.z 
rumpelstiltskinwebfont.php 

poi ho cercato di aggiungere il font:

$pdf->addFont('rumpelstiltskin'); 
$pdf->SetFont('rumpelstiltskin', '', 14, '', false); 

ma sto ottenendo un errore:

TCPDF ERROR: Could not include font definition file: rumpelstiltskin 
+0

forse è necessario fornire alla funzione addFont il percorso completo dei file. Sembra che non trovi il file. – Loopo

+0

@Loopo Non era il percorso completo di cui aveva bisogno, ma tu eri vicino. Stavo usando il nome del font e voleva il nome del file. Grazie per il commento, mi ha aiutato a capirlo. –

+0

Penso che si potrebbe andare in questo modo: http: // StackOverflow.it/questions/5263588/how-to-implement-custom-fonts-in-tcpdf – Ulugov

risposta

9

Ho capito il mio problema, ero quasi arrivato.

Ecco un passo per passo:

Prima convertire il tipo di carattere utilizzando il carattere strumento tcpdf_addfont.php nella cartella strumenti TCPDF:

php/tcpdf/tools/tcpdf_addfont.php -i php/font/rumpelstiltskin-webfont.ttf 

Questo genererà i file necessari e li mise in Cartella dei caratteri TCPDF. Controlla la cartella dei caratteri e copia il nome del carattere, nel mio caso era rumpelstiltskinwebfont.

Nel codice impostare il tipo di carattere utilizzando il nome del file di font e scrivere una riga di testo:

$pdf->SetFont('rumpelstiltskinwebfont', '', 14, '', false); 
$pdf->Write(0, 'Fill text', '', 0, '', true, 0, false, false, 0); 

Questo è tutto. Spero che questo aiuti qualcuno. :)

+1

risolto il mio problema;) – Hafez

0

Ottenuto questa risposta in another question e risolto per me. Hai solo bisogno di usare il primo parametro, il percorso del file di font. Funzionato con i caratteri TTF e OTF.

genera una stringa di nome da utilizzare con $pdf->SetFont($fontname, '', $font_size);

Speranza che aiuta.


L'ultima versione TCPDF convertire automaticamente i font in formato TCPDF utilizzando il metodo addTTFfont(). Per esempio:

// convert TTF font to TCPDF format and store it on the fonts folder 
$fontname = TCPDF_FONTS::addTTFfont('/path-to-font/FreeSerifItalic.ttf', 'TrueTypeUnicode', '', 96); 

// use the font 
$pdf->SetFont($fontname, '', 14, '', false); 

Per ulteriori informazioni ed esempi, si prega di controllare il TCPDF Fonts documentation page.

NOTA: una volta convertito il carattere, TCPDF non richiede più il file TTF o la chiamata sopra a addTTFfont()!

Problemi correlati