2012-02-24 14 views
5

¿Puede alguien armar un ejemplo claro y conciso de cómo puede crear un PDF utilizando TCPDF que admitirá cadenas de texto de cualquier idioma?Creación de archivos PDF utilizando TCPDF que admite todos los idiomas, especialmente CJK

Parece que no hay una sola fuente que admita todos los idiomas. Supongo que la fuente sería demasiado grande.

Supongo que la forma correcta sería detectar el idioma de la cadena y establecer dinámicamente el tipo de fuente en una fuente compatible. Si este es el caso, se vuelve muy complejo al detectar el idioma de cada cadena.

La mayoría de los idiomas son compatibles si utiliza la fuente "freeserif". Sin embargo, no es compatible con las fuentes CJK. He probado muchas fuentes (kozminproregular, cid0jp, cid0kr, cid0jp, stsongstdlight) para obtener soporte para chino, japonés y coreano, pero ninguno de ellos parece ser compatible con los tres idiomas.

+0

¿Tiene alguna solución adecuada? También estoy enfrentando el mismo problema. – Emma

+0

@Emma Al parecer, la solución de EtiennezOr debería funcionar, pero aún no he completado los pasos. – Matt

+0

Gracias por la respuesta. Lo intentaré. – Emma

Respuesta

0

Managed este problema haciendo mi propia fuente de Arial Unicode MS con estos pasos:

en un script temporal puesto y ejecutar este
1. poner una copia de ARIALUNI.TTF en fuentes carpeta en la instalación TCPDF (Tomé mi copia de la carpeta windows \ fonts
2. hago un script temporal en la carpeta de ejemplos de tcpdf y lo ejecuto con esta línea:
$ fontname = $ pdf-> addTTFfont ('../ fonts/ARIALUNI .ttf ',' TrueTypeUnicode ',' ', 32);
3. configure la nueva fuente en la secuencia de comandos del generador de PDF:
$ pdf-> SetFont ('arialuni', '', 20);

Ahora el pdf debe mostrar correctamente los caracteres CJK.
Espero que esto ayude a tantas personas.

+0

¿Qué tan grande es su fuente después de hacer esto? ¿Es compatible con chino, japonés, coreano? Gracias. – Matt

+0

@ Etiennez0r: Tiene un problema de renderizado con hindi Unicode ... – Sankalp

+0

Era más grande como puedo recordar, pero contenía caracteres chinos, japoneses y coreanos (CJK) como Matt preguntó. No intentado hindi unicode todavía – Etiennez0r

1

Esto funcionó perfectamente para mí. ¡Gracias!

Para asegurarse, el archivo PDF generado no se llega a grande, utilizar FontSubsetting - Tengo un PDF de 10 páginas generadas con sólo unas pocas líneas de chinos (Nombres de diplomas)

$ pdf-> setFontSubsetting (cierto); => Archivo PDF ligeramente más grande 925kb vs 755kb sin los nombres chinos si usa $ pdf-> setFontSubsetting (false); => PDF Tamaño de archivo como aproximadamente 17.5 MB ...

0

Acabo de probar la solución de Etiennez0r, y no funcionó para mí. Es necesario hacer una modificación menor de la siguiente manera:

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

I que establece:

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

....... // conjunto de fuente

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

exportación japonesa está funcionando bien

Cuestiones relacionadas