Software: Apache/2.4.18 (Ubuntu). PHP/7.0.33-0ubuntu0.16.04.16 uname -a: Linux digifus 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:28:15 UTC 2015 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/almazenServer/application/third_party/tutorial/ drwxr-xr-x | |
| Viewing file: Select action/file-type: Añadiendo nuevas fuentes y codificacionesEste tutorial explica cómo usar fuentes TrueType, OpenType y Type1 de forma que usted no se vea limitado a las fuentes incorporadas en FPDF. El otro punto de interés es que pueda elegir la codificación de la fuente, lo que le permitirá usar otros idiomas aparte de los europeos occidentales (ya que las fuentes estándar tienen muy pocos caracteres disponibles).Nota: para OpenType, sólo es compatible el formato basado en TrueType (no así el basado en el Type1). Existen dos formas de usar una nueva fuente: incluirla en el PDF o no. Cuando una fuente no se incluye, se busca en el sistema. La ventaja es que el fichero PDF es más pequeño; sin embargo, si la fuente no está disponible en el sistema, se usa otra como sustituta. Así que es aconsejable asegurarse de que la fuente en cuestión está instalada en los sistemas de los clientes. Si el fichero está destinado a una audiencia numerosas, es mejor incluir la fuente. Añadir una nueva fuente requiere dos pasos:
Generación del fichero de definición de la fuenteEl primer paso consiste en generar un fichero PHP que contenga toda la información que necesita FPDF; además, el fichero de la fuente deberá comprimirse. Para hacer esto, se distribuye un script auxiliar en el directorio makefont del paquete: makefont.php. Contiene la siguiente función:MakeFont(string fontfile, [, string enc [, boolean embed]])
Para las fuentes Type1, el archivo .afm correspondiente debe estar presente en el mismo directorio. La codificación define la asociación entre un código (de 0 a 255) y un carácter. Los primeros 123 son fijos y se corresponden con los caracteres ASCII; los siguientes son variables. Las codificaciones se almacenan en ficheros .map. Están disponibles:
Nota: las fuentes estándar usan cp1252. Después de llamar a la función (puede crear un nuevo fichero e incluir makefont.php), se creará un fichero .php con el mismo nombre que la fuente. Puede renombrarlo si lo desea. En caso de incluir la fuente, el fichero se comprime y da lugar a un segundo fichero con extensión .z (excepto si la función de compresión no está disponible, puesto que requiere la biblioteca Zlib para PHP). También puede renombrarlo, pero, en este caso, tendrá que modificar la variable $file en el fichero
.php consecuentemente.
Ejemplo:
Entonces tendrá que copiar los ficheros generados en el directorio de fuentes. Si el fichero de la fuente no pudo ser comprimido, copie la fuente en lugar del .z. Otra forma de invocar a MakeFont() es a través de la línea de comandos: php makefont\makefont.php c:\Windows\Fonts\comic.ttf cp1252 Por último, para las fuentes TrueType y OpenType, también puede generar los archivos en línea en lugar de hacerlo manualmente. Declaración de la fuente en el scriptEl segundo paso es el más simple. Sólo necesita llamar al método AddFont():
EjemploVeamos ahora un ejemplo completo. Vamos a utilizar la fuente Calligrapher. El primer paso es la generación de los archivos de la fuente:
Warning: character Euro is missing Warning: character zcaron is missing Font file compressed: calligra.z Font definition file generated: calligra.php El carácter del euro no está en la fuente (es muy antigua). Otro carácter tampoco se encuentra en la fuente. Alternativamente, podríamos haber utilizado la línea de comandos: php makefont\makefont.php calligra.ttf cp1252 o haber usado el generado en línea. Podemos copiar estos dos ficheros en el directorio de fuentes (font) y escribir el script:
Acerca del símbolo del euroEl carácter del euro no aparece en todas las codificaciones, y no siempre está en la misma posición:
Reduciendo el tamaño de las fuentes TrueTypeLos ficheros de fuentes son con frecuencia bastante voluminosos ; esto se debe a que contienen los caracteres correspondientes a muchas codificaciones. La compresión Zlib los reduce, pero continúan siendo bastante grandes. Existe una técnica para reducirlos aún más. Consiste en convertir la fuente a formato Type1 con ttf2pt1 (el ejecutable para Windows está disponible aquí) especificando la codificación que le interesa; todos los demás caracteres serán omitidos.Por ejemplo, la fuente arial.ttf que viene con Windows Vista tiene un tamaño de 748 KB (contiene 3381 caracteres). Después de comprimirla, pesa 411 KB. Convirtámosla a Type1 manteniendo sólo los caracteres cp1250: ttf2pt1 -b -L cp1250.map c:\Windows\Fonts\arial.ttf arial Los ficheros .map están en el directorio makefont del paquete. El proceso devuelve arial.pfn y arial.afm. El fichero arial.pfb ocupa sólo 57 KB, 53 KB después de comprimirlo. Es incluso posible ir más allá. Si sólo está usted interesado en un subconjunto de la codificación (es probable que no necesite los 217 caracteres), puede abrir el fichero .map y quitar las líneas que no le interesen. Consecuentemente, el tamaño del fichero disminuirá. |
:: Command execute :: | |
--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0056 ]-- |