2012-02-24 13 views
5

Qualcuno può mettere insieme un esempio chiaro e conciso di come è possibile creare un PDF usando TCPDF che supporterà stringhe di testo da qualsiasi lingua?Creazione di PDF con TCPDF che supporta tutte le lingue, in particolare CJK

Sembra che non ci sia un singolo font che supporterà tutte le lingue. Immagino che il font sarebbe troppo grande?

Suppongo che il modo corretto sarebbe quello di rilevare la lingua della stringa e impostare dinamicamente il tipo di carattere su un font compatibile. Se questo è il caso, diventa molto complesso nel rilevare la lingua per ogni stringa.

La maggior parte delle lingue sono supportate se si utilizza il carattere "freeserif". Tuttavia non supporta i font CJK. Ho provato molti font (kozminproregular, cid0jp, cid0kr, cid0jp, stsongstdlight) per ottenere supporto per cinese, giapponese e coreano, ma nessuno di loro sembra supportare tutte e tre le lingue.

+0

Avete qualche soluzione adeguata? Anch'io sto affrontando lo stesso problema. – Emma

+0

@Emma Apparentemente la soluzione di EtiennezOr dovrebbe funzionare, ma non ho ancora completato i passaggi. – Matt

+0

Grazie per la risposta. Lo proverò. – Emma

risposta

0

Managed questo problema rendendo il mio carattere da MS Arial Unicode con questi passaggi:

in uno script temporale messo ed eseguire questo
1. mettere una copia di ARIALUNI.TTF nella cartella di caratteri sotto installazione TCPDF (ho preso la mia copia dalla cartella windows \ fonts
2. crea uno script temporaneo nella cartella degli esempi di tcpdf ed eseguilo con questa riga:
$ fontname = $ pdf-> addTTFfont ('../fonts/ARIALUNI .ttf ',' TrueTypeUnicode ',' ', 32);
3. imposta il nuovo carattere nello script del generatore di PDF:
$ pdf-> SetFont ('arialuni', '', 20);

Ora il pdf deve mostrare correttamente i caratteri CJK.
Spero che questo aiuti così tante persone.

+0

Quanto è grande il carattere dopo averlo fatto? Supporta cinese, giapponese, coreano? Grazie. – Matt

+0

@ Etiennez0r: ha un problema di rendering con l'hindi Unicode ... – Sankalp

+0

Era più grande di quanto possa ricordare, ma suportava i caratteri cinesi, giapponesi e coreani (CJK) come chiedeva Matt. Non ancora provato hindi unicode – Etiennez0r

1

Questo ha funzionato perfettamente per me. Grazie!

Per assicurarsi che il file PDF generato non si arriva a grande, utilizzare FontSubsetting - Ho un 10 pagina PDF generati con solo poche righe di cinesi (nomi sui diplomi)

$ pdf-> setFontSubsetting (vero); => PDF File leggermente più grande 925kb vs 755kb senza i nomi cinesi se si utilizza $ pdf-> setFontSubsetting (false); => PDF Dimensione del file pari a circa 17,5 MB ...

0

Ho appena provato la soluzione di Etiennez0r e non ha funzionato per me. Necessario per fare una piccola modifica, come di seguito:

$fontname = TCPDF_FONTS::addTTFfont('../fonts/ARIALUNI.TTF', 'TrueTypeUnicode', '', 96); 
0

I impostazione:

$fontname = TCPDF_FONTS::addTTFfont(FCPATH . 'TCPDF/fonts/ARIALUNI.ttf', 'TrueTypeUnicode', '', 32); 

....... // set di font

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

esportazione giapponese sta lavorando bene

Problemi correlati