Agregando enlaces a paginas Web a archivos Pdf con iText

Estándar

Al momento de crear un archivo Pdf con iText puede darse el caso que necesite o desee agregar un enlace a una pagina web, por ejemplo la pagina web de su empresa, esto es perfectamente realizable desde iText y es bastante sencillo.

Preparando el proyecto.

Si ya a leído entradas previas de este blog ya sabrá como agregar la liberia iText a un proyecto en Eclipse, en caso de no conocer el procedimiento puede consultarlo a detalle en esta entrada: https://hashblogeando.wordpress.com/2013/07/14/itext-generacion-de-archivo-pdf-en-java/ en la que se detalla como configurar el proyecto y donde descargar la libreria iText, una vez que tenga generado el proyecto podemos proseguir.

Proyecto en Eclipse

Como puede ver en la figura 1, el proyecto de ejemplo consiste en una sola clase en el paquete mx.com.hashSoft.

Figura 1 - Proyecto en Eclipse

Figura 1 – Proyecto en Eclipse

El código de la clase Hiperenlace se presenta a continuación, las partes importantes para generar el enlace aparecen resaltadas en rojo.

package mx.com.hashSoft;

import com.itextpdf.text.Anchor;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

/**
 * Crea un documento Pdf con hiperenlaces a Internet, estos enlaces
 * aparecen con letras azules y subrayados
 *
 * Referencias:
 * http://tutorials.jenkov.com/java-itext/anchor.html
 * http://geek-tutorials.com/java/itext/itext_bookmark_anchor.php
 * @author david
 */

public class HiperEnlace {
    
    static public void main(String[] args) {
        
        Document documento = new Document();
        Font fuente = new Font();
        Paragraph parrafo = new Paragraph();
        Anchor enlace = null;
        
        // Creamos el documento
        
        try{
            
            PdfWriter.getInstance(documento, new FileOutputStream(“HyperEnlace.pdf”));
            
            documento.open();
            
            // Usaremos esta fuente para los enlaces
            // Se establece el color azul
            fuente.setColor( BaseColor.BLUE);
            // Y el subrayado
            fuente.setStyle(Font.UNDERLINE);            
            
            // Agregamos un parrefo
            parrafo.add(new Phrase(
                    “Este es un ejemplo de como generar hiperenlaces, los cuales al darles click abren “
                    + “una pagina en el navegador. Como puede observar dando click al siguiente\n”));
            
            // Texto que se mostrara en el documento
            enlace = new Anchor(“http://tutorials.jenkov.com/java-itext/anchor.html”, fuente);
            
            // direccion URL a la que apunta el enlace
            enlace.setReference(“http://tutorials.jenkov.com/java-itext/anchor.html”);
            
            // Agregamos el enlace
            parrafo.add(enlace);            
            
            // Agregamos otro parrafo
            parrafo.add(new Phrase(“\nNotara que el pulsar el enlace abrio la pagina de una de las ” +
            “Referencias de la entrada”));
            
            documento.add(parrafo);           
            documento.close();           
            
        }catch(DocumentException e) {
            System.err.println(“*********** Error al crear Documento”);
            e.printStackTrace();
        }catch(FileNotFoundException d) {
            System.err.println(“*********** Error al abrir archivo”);
            d.printStackTrace();
        }        
    }
}

Font fuente = new Font(); Creamos un objecto Font, de modo que podamos crear una fuente personalizada, esto es necesario ya que por defecto los enlaces lucirán igual que el resto del texto, algo que seguramente no desea

Anchor enlace = null; Creamos un objecto que representa un enlace en el documento, por el momento no esta inicializado, pero eso cambiara en corto.

fuente.setColor( BaseColor.BLUE);  Indicamos al nuestro objecto Font que deseamos el texto que use esta fuente sea del color indicado, en este caso Azul, indicado por la constante BaseColor.BLUE

fuente.setStyle(Font.UNDERLINE); Indicamos a nuestro objecto Font que el texto que use esta fuente debe de esta subrayado, esto junto a la instrucción anterior le dará a los enlaces el look clasico de texto azul subrayado

enlace = new Anchor(“http://tutorials.jenkov.com/java-itext/anchor.html”, fuente); Creamos el objecto Anchor el cual se presentara como un enlace en el documento, en esta versión en particular del constructor indicamos el texto que deseamos aparezca y la fuente con la que deseamos se escriba, aquí viene a la mano la fuente que definimos de modo que los enlaces resalten en el documento.

 enlace.setReference(“http://tutorials.jenkov.com/java-itext/anchor.html”); La linea principal del enlace, con el método setReference indicamos a que URL nos debe dirigir el enlace al momento de pulsarlo

 parrafo.add(enlace); Agrega el enlace al parrafo indicado.

Salida del programa

Una vez que ejecute el programa, en el directorio raiz del proyecto encontrara un archivo HyperEnlace.pdf que lucirá como la figura 2

Figura 2 - Salida

Figura 2 – Salida

Y si pulsa el enlace lo llevara a una de las referencias que me ayudaron a crear esta entrada.

Figura 3 - Destino

Figura 3 – Destino

Espero que esta entrada halla sido de utilidad y nos vemos en la próxima.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s