Ver índice
Creación de índices de contenidos y fuentes

        Ocultar índice  

   Índice de contenidos
   Instalación en Windows
   Instalación en Ubuntu
   Servidores seguros
   Páginas dinámicas
   Sintaxis básica
   Operaciones
   Arrays
   Formatos de presentación
   Operadores
   Bucles
   Extraer y ord. información
   Funciones
   Ficheros externos
   Imágenes dinámicas
   Gestión de directorios
   Cookies y sesiones
   Clases y objetos
   Ficheros en formato PDF
   Bases de datos MySQL
   PHP y XML
   PDO - Bases SQLite / MySQL
   MySQL a traves de misqli
   Algo de JavaScript y AJAX


Indices de contenidos

Otras de las múltiples posibilidades de la clase TCPDF es la inclusión de marcadores y la confección automática de listas de contenidos. Los marcadores, como podrás ver en el ejemplo, pueden incluirse de modo que el índice resultante pueda tener distintos niveles (capítulos, apartados, sub apartados, etcétera). El método que permite la elaboración de ese tipo de enlaces es el siguiente:

$objeto->Bookmark(texto, nivel, posicion, pagina, estilo, color)

dónde texto es una cadena que contiene el texto que aparecerá en el índice del documento, nivel será un número entero que indicará a qué nivel pertenece la marca. Cero significará primer nivel (por ejemplo TEMA), uno significará segundo nivel (en el índice «colgará» del de primer nivel anterior a él) y así sucesivamente. El parámetro posicion admite como valores 0 y -1. Si se especifica 1 al pulsar sobre el enlace el navegador se punto de inserción en la parte superior de la ventana contenedora del documento. Si ese valor es 0 se situará en el borde superior de la página que contiene el marcador.>

El parámetro pagina permite especificar la página a la que nos redirigirá el enlace. Si se incluye una cadena vacía (lo habitual) nos redirigirá a la página que incluye el marcador actual. El parámetro estilo admite como valores 'B' (negrita), 'I' o una cadena vacía (normal) y permite especificar el estilo del texto (en índice del documento) con que se visualizará el enlace hacia la posición señalada por el marcador. Por último el parámetro color es un array que permite indicar en modo R,G,B el color del texto de los enlaces.

En este ejemplo puedes ver una muestra de las posibilidades de esta opción.

ejemplo356.php Ver código fuente

Fuentes tipográficas

Para generar las nuevas fuentes es necesario disponer del programa pfm2afm.exe que viene incluido en el paquete tcpdf. Concretamente en el directorio /tcpdf/fonts/utils

Creación del fichero .afm

Este fichero, cuya extensión es el acrónimo de Adobe Font Metric contiene las información sobre ancho, alto y kerning de cada carácter de una fuente. El primer paso la utilización de una nueva fuente ha de ser la creación de ese fichero. El procedimiento requiere lo siguiente:

  ¡Cuidado!  

En el caso de Ubuntu el proceso es idéntico.
Bastará con abrir el terminal, situarse en el directorio fuentes.
Desde allí se ejecuta el comando ttf2ufm de forma idéntica a la descrita para MS-DOS.

Definición de las fuentes

El directorio C:/ServidoresLocales/Apache/htdocs/php/tcpdf/fonts/utils incluye un script llamado makefont.php. La definición de fuentes requiere la ejecución de una de las funciones que contiene ese script llamada MakeFont() y que utiliza los siguientes parámetros:

MakeFont( fuente_truetype, fuente_afm, incrustado, codificacion, modificadores )

donde fuente_truetype es el nombre, extensión y path de la fuente TrueType a utilizar (fichero .ttf), fuente_afm es el nombre del fichero .afm creado para esta misma fuente mediante ttf2ufm. Estos dos parámetros son obligatorios.

Mediante el parámetro incrustado (por defecto true) se especifica si la fuente va a ser incrustada en los documentos pdf que la utilicen. El parámetro codificación permite especificar el mapa de fuentes a utilizar. Si no se indica toma el valor por defecto que es cp1252. Por último el paramétro opcional modificadores permite cambiar la codificación de algunos caracteres.

La ejecución de la función MakeFont() comentada anteriormente podría hacerse mediante un script similar a este:

<?php
# 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($_SERVER['DOCUMENT_ROOT']."/php/tcpdf/fonts/utils/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($_SERVER['DOCUMENT_ROOT']."/php/tcpdf/fonts/utils/bobcayge.ttf",
              $_SERVER['DOCUMENT_ROOT']."/php/tcpdf/fonts/utils/bobcayge.afm")){
?>

cuya ejecución de ese script daría como resultado la creación en el directorio actual (es decir en el que contenga el script anterior) de dos ficheros con el mismo nombre y extensiones .z y .php. para poder usar la nueva fuente es necesarios incluirlos (ambos) en el directorio /tcpdf/fonts/.

Diferentes tipografías

Lo habitual es que entre las fuentes TrueType de un tipo determinado existan varios ficheros. Uno para la fuente normal, otro para la cursiva, etcétera. Cuando se trabaja con este tipo de fuentes y se pretende usar estilos distintos, lo aconsejable es definir una fuente para cada tipo y tratarlos, a la hora de escribir el código de los script como fuentes independientes.

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. Por tanto, la sintaxis de la asignación de fuentes habría de ser:

$objeto->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

El uso de fuentes externas puede producir efectos indeseados si, por alguna circunstancia, tal como ocurre en los ejemplos la fuente utilizada carece de algunos carácteres (eñes, letras con tilde, símbolos). Conviene tenerlo en cuenta para evitar que la elección de una tipografía pueda afectar a los contenidos del documento.

ejemplo357.php

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.

ejemplo358.php ejemplo359.php