2012-01-14 16 views
6

Qualcuno può dirmi cosa sto facendo male? Ho bisogno del carattere Arial nel mio pdf generato da TCPDF. Per prima cosa ho provato ad usarlo: 1) Ho ricevuto Arial da windows fonts caltalog e lo metto nella directory TCPDF. 2) Poi ho scritto in sceneggiatura:Caratteri specifici in TCPDF pdf

$fontname = $pdf->addTTFfont('../lib/tcpdf/arial.ttf', '', '', 32); 

Dopo che nel TCPDF/font appare 3 file (arial.ctg.z, arial.php e arial.z). Ho pensato che tutto era ok, ma se in TCPDF io uso questo tipo di carattere da:

$pdf->SetFont('arial', '', 16); 

Font nel documento è infatti arial ma senza specifica polacco canta (ąęłżńź)

ho provato anche preparare carattere da soli : ho scaricato ttf2afm e sceneggiatura makefontuni.php quindi in linea di comando ho scritto questo:

ttf2ufm -a arial.ttf 
php -q makefontuni.php arial.ttf arial.ufm 

che mi ha dato comando ha anche 3 file (arial.ctg.z, arial.php e arial.z) ma situazione finale è lo stesso come prima.

Sono ammettere che tutti i dati scrivendo a PDF è in UTF-8 e TCPDF costrutto è come questo:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'utf-8', false); 

Non so cosa sto facendo di sbagliato. :(

risposta

3

Non c'è bisogno di aggiungere qualsiasi tipo di carattere, utilizzare il Dejavu Sans Font che ha tutti i caratteri UTF-8 built-in ed il TCPDF ha già ..

$pdf->SetFont('dejavusans', '', 14, '', true); 

http://www.tcpdf.org/examples/example_001.phps

+2

Sì, hai ragione ma ho bisogno del font Arial non dejavusans ed ecco il problema – Karol85

+0

@Miro Markaravanes: Funziona per caratteri speciali ma non mostra effetto grassetto. –

0

Hm , sei sicuro che Arial abbia tutti i caratteri UTF-8? Ho seguito le istruzioni qui http://www.tcpdf.org/fonts.php e ha funzionato. Quello che ho avuto problemi è stato che ho potuto aggiungere solo caratteri regolari - non appena ho aggiunto grassetto o corsivo e poi cambiato l'uno dall'altro, tutti i personaggi sono diventati puntini

Quindi al momento sto usando solo il mio font Regular e per Bold uso 'dejavusans' (grazie a Miro). Il mio codice:

$fontname = $pdf->addTTFfont('/lib/tcpdf/fonts/myfont-Regular.ttf','TrueTypeUnicode',''); 
$pdf->SetFont($fontname, '', 8, '', true); 
13

Se si desidera utilizzare un carattere personalizzato utilizzare questo strumento

http://www.xml-convert.com/en/convert-tff-font-to-afm-pfa-fpdf-tcpdf

quando si ottiene i file generati solo spostarli nella directory/fonts e con lo stesso nome hanno, impostare l'attributo font-name.

+0

Grazie per questo! – Mati

+0

Voglio solo aggiungere che 2 file devono essere aggiunti nella libreria .php e .z – mujaffars

+0

Wow. Funziona meglio di 'TCPDF_FONTS :: addTTFfont'. Ho provato ad usare addTTFfont, ma il font non ha funzionato. Quando ho sostituito i file .z e .php del mio font, funziona. –

0

ho avuto lo stesso errore ho potuto risolto mettendo il prossimo, dopo de linea:

$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $fontname = $pdf->addTTFfont('tcpdf/fonts/arial.ttf', '', '', 32); $pdf->SetFont('arial', '', 16);

0

penso che vi aiuterà a risolvere il problema di carattere.

$pdf->SetFont('freeserif', '', 12); 

Sopra la famiglia di caratteri che supporta i caratteri UTF-8.

1
$fontname = TCPDF_FONTS::addTTFfont(FCPATH.'/assets/css/fonts/arial-unicode-ms.ttf'); 

Questo è quello che uso per includere caratteri personalizzati su TCPDF. È necessario solo il file .ttf del carattere. Aggiungilo in una cartella a tua scelta sul server ed esegui questo codice una volta. (Lo eseguo per la prima volta all'esportazione) Quindi puoi commentare questa riga e il font dovrebbe essere lì.

Per aggiungerlo all'esportatore si dovrebbe aggiungere come carattere con:

$pdf->addFont('your-font-name', '', 10, '', false); 

E se si vuole che sia di default:

$pdf->setFont('your-font-name', '', 10, '', false); 

Se non sai cosa è il nome effettivo del carattere da utilizzare in PDF:

echo $fontname; 

Questo darebbe il nome specifico del carattere da utilizzare nella file esportato.

Dopo aver eseguito quel comando una volta TCPDF crea tutto il file necessario nella sua cartella font ed è pronto per l'uso da ora in poi.

Se si desidera aggiungere nuovamente lo stesso carattere (modificato), è necessario eliminare i file dei font in tcpdf/fonts/nome-font. ed esegui di nuovo questo comando per aggiungerli nuovamente.

Problemi correlati