Al ejecutar este instalador, con la opción por defecto, nos creará un directorio llamado GnuWin32 (en Archivos de Programa) dentro del cual encontramos un directorio llamado bin en el que se encuentra el ejectuable ttf2pt1.
El resto de las opciones de esta distribución no son necesarias para nuestros fines.
Creación del fichero .afm
El primer paso ha de ser la creación de ese fichero. El procedimiento para hacerlo es el que tienes descrito al margen.
En el directorio fuentes tienes los ficheros cayge.afm y caygr.afm generados según el proceso descrito al margen.
Definición de las fuentes
MakeFont(f1, f2, c, p, tipo)
donde f1 es el nombre y path de la fuente TrueType a utilizar (fichero .ttf), f2 es el nombre del fichero .afm creado para esta misma fuente mediante ttf2pt1. Estos dos parámetros son obligatorios.
Mediante el parámetro c (opcional) se especifica el tipo de codificación (el mapa de fuentes a utilizar). Si no se indica el valor por defecto sería cp1252.
El parámetro opcional c permite cambiar la codificación de algunos caracteres, y, mediante tipo puede indicarse el tipo de fuente original (por defecto se asigna TrueType).
La definición de nuevas fuentes requiere la ejecución de la función MakeFont. Para ello, una de las opciones, es utilizar un script como el que ves a la derecha. En una primera instrucción se incluye el fichero makefont.php y en la segunda se hace una llamada a la función únicamente con los parámetros obligatorios.
La ejecución de ese script daría como resultado la creación de dos ficheros con el mismo nombre. Uno de ellos con extensión .z y el otro con extensión .php. Ambos, para que puedan ser usados por la clase FPDF, deberán ser incluidos en el directorio fontsPDF.
Diferentes tipografías
De esta forma podríamos tener parejas de ficheros del estilo: fxx_normal.z y fxx_normal.php; fxx_cursiva.z y fxx_cursiva.php, etcétera. A la hora de utilizarlas se haría como si se tratara de fuentes de distintas familias y habría de evitarse incluir el estilo en SetFont.
La sintaxis de la asignación de fuentes habría de ser:
$obj->SetFont("nombre","", 9);
dejando el valor del segundo parámetro (estilo) como una cadena vacía. La única excepción a esta norma sería el caso del subrayadado que no requiere otra cosa que asignar el valor U al parámetro estilo.
Precauciones con las fuentes
|
Proceso de generación de fuentes Esta primera imagen es la visualización del directorio fuentes de estos materiales. Podrás observar que contiene fuentes TrueType y el ejecutable ttf2pt1. Hemos incluido dos fuentes TrueType llamadas bobcayge.ttf y bobcaygr.ttf. Serán las que utilizaremos para añadir nuevas opciones de fuentes a nuestros PDF's. ![]() No es necesario que realices la instalación de ttf2pt1-3.4.4.exe comentada al margen. En el subdirectorio fuentes de estos materiales ya dispones del fichero ttf2pt1. Creación del fichero .afm Desde la ventana de MS-DOS y una vez elegido el directorio que contiene el ejecutable ttf2pt1 podemos crear el fichero .afm usando la siguiente sintaxis: ttf2pt1 -anombre_de_la_fuente_TrueType.ttf nombre_del_nuevo_fichero ![]() Nos generará dos ficheros con el nombre asignado al nuevo fichero y extensiones .afm y .t1a tal como puedes ver en la imagen. ![]() Creación del fichero de definición de fuente Este es un ejemplo de script que permitiría definir nuevas fuentes mediante la utilidad makefont. <? # incluimos el fichero makefont.php que está # en la ruta que se especifica (si lo tuvieramos en otra # ubicación bastaría cambiar el path del include include("c:/Apache/htdocs/cursoPHP/fontsPDF/ makefont/makefont.php"); # ejecutamos la función MakeFont indicando como parametros # la ruta y el fichero ttf a convertir(la fuente trueType) # y como segundo parámetro la ruta y el nombre del fichero afm # creado en el proceso anterior MakeFont("c:/Apache/htdocs/cursoPHP/fuentes/bobcaygr.ttf", "c:/Apache/htdocs/cursoPHP/fuentes/caygr.afm"); ?> Al ejecutar el script anterior puede ocurrir que, dependiendo de la fuente ttf que estemos utilizando, aparezcan mensajes de advertencia como los que ves en esta imagen. ![]() Significaría que algunos tipos (generalmente los asociados a los caracteres ASCII ampliados) no estarían disponibles y que, en consecuencia, o no se visualizarían o se visualizarían de forma incorrecta. Una vez creados los ficheros como las nuevas fuentes es necesario incluirlos en el directorio fontsPDF de modo que estén disponibles a la hora de crear los documentos PDF. ![]() Ejemplo de utilización La utilización de nuevas fuentes requiere que objeto->AddFont(nombre_a_utilizar, estilo, fichero_fuente.php) donde el nombre_a_utilizar puede ser cualquiera, el parámetro estilo puede ser la cadena vacía y el tercer parámetro es el nombre y extensión del fichero .php que contiene la definición de la fuente y que fué creado por medio de makefont. Si se omite el tercer parámetro será asignado, de forma automática, la cadena formada por la unión las cadenas nombre_a_utilizar y estilo, agregándole la extensión .php. <? #incluimos el fichero con la clase y definimos la variable FPDF_FONTPATH # con el mismo criterio comentado en el ejemplo anterior include("fpdf.php"); define('FPDF_FONTPATH','c:/Apache/htdocs/cursoPHP/fontsPDF/'); /* establecemos las dimensiones del documento creamos un nuevo objeto y añadimos una página*/ $dimensiones=array (140,200); $MiPDF=new FPDF('P','mm',$dimensiones); # ajustamos al 100% la visualización $MiPDF->SetDisplayMode('real'); #insertamos una página en blanco $MiPDF->Addpage(); # establecemos el color de la letra $MiPDF->SetTextColor(255,0,0); # añadimos la nueva fuente. Podemos ponerle un nombre cualquiera # Al no incluir estilo considerará el estilo normal $MiPDF->AddFont('fuentenueva1','','cayge.php'); # a indicar SetFont habremos de utilizar el mismo nombre de fuente # establecido mediante AddFont $MiPDF->SetFont('fuentenueva1','',24); $MiPDF->Multicell(0,10,"Prueba de la fuente que hemos llamado fuente nueva1",1,'L',0); $MiPDF->Ln(10); # incluimos la fuente caygr.php con nombre fuentenueva2 $MiPDF->AddFont('fuentenueva2','','caygr.php'); $MiPDF->SetFont('fuentenueva2','',24);> $MiPDF->Multicell(0,10,"Prueba de la fuente que hemos llamado fuente nueva2",1,'R',0); $MiPDF->Output(); ?> EJEMPLO144 En estos dos ejemplos pueden verse los resultados -con algunos problemas gráficos- de la sustitución de las fuentes en algunos de los ejemplos de páginas anteriores.
|
|
|





