Exportar PDF multiidioma con iReport

4
26731

Exportar PDF multiidioma con iReport

Introducción

En este tutorial vamos a ver como poder crear un informe en
diferentes idiomas (francés, árabe, hebreo, ruso,
griego, etc.) y exportarlo en formato PDF con iReport (http://jasperforge.org/sf/projects/ireport)
sin ningún problema con las fuentes ni tipologías
propias del lenguaje.

Actualmente existe en Adictosaltrabajo.com
un tutorial donde se habla de iReport, su instalación, su
configuración y sus funcionalidades
básicas para crear informes sencillos (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ireport). 

En nuestras aplicaciones podemos tener la necesidad de crear
informes y exportarlos en varios formatos (pdf, doc, csv, xls, txt,
etc.) usando diferentes idiomas. En este tutorial se va a explicar y
solucionar algunos problemas que podemos tener a la hora de exportar a
formato PDF informes en idiomas diferentes. Vamos a usar para este
tutorial el idioma árabe.

Entorno de trabajo

  • iReport 1.3.2
  • JDK 1.6.0
  • Sistema operativo Windows XP Home Edition
  • Ejemplo

    Para nuestro primer ejemplo vamos a crear un sencillo informe con
    textos en español y árabe.

    Ahora elegimos exportarlo a PDF y ejecutamos nuestro informe.

    Vemos que los textos en español salen perfectamente
    mientras que el texto en árabe (Autentia) no sale en el PDF.
    ¿porqué?

    Vamos a ver si podemos arreglar esto…Nos vamos a nuestro
    informe, seleccionamos el área  de texto en
    árabe. Pulsamos el botón derecho y hacemos click
    en Propiedades.

    Una vez dentro del menú «Propiedades» vamos
    a la pestaña «Fuente«,
    cambiamos la codificación del PDF a «CP1256 (Arabic)» y
    activamos la opción de «Ajustado
    al PDF
    «.

    Ahora vamos a ver si los cambios que hemos hecho funcionan.
    Ejecutamos de nuevo nuestro informe y vemos el PDF generado…

    Pero vemos que tampoco exporta bien el texto en
    árabe, ¿porqué?

    Solución

    Para solucionar estos problemas tenemos que meter en el classpath
    de nuestra aplicación la fuente con la que queramos exportar
    nuestro texto al PDF. En nuestro ejemplo, la aplicación
    desde donde estamos ejecutando y exportando nuestros informes es iReport, por lo que
    vamos a copiar nuestra fuente al classpath
    de iReport (habitualmente «C:\Archivos
    de programa\JasperSoft\iReport-1.3.2«).
    La fuente seleccionada para nuestro ejemplo va a ser una fuente de
    Windows, por ejemplo, Arial.
    («C:\WINDOWS\Fonts\ARIAL.TTF»).

    Por ejemplo, si estamos lanzando nuestro informe desde una aplicación web, tenemos que colocar nuestra fuente ARIAL.TTF en «WEB-INF\classes»
    (classpath) para que nuestro PDF se visualize correctamente. En general
    debemos colocar la fuente seleccionada para nuestro informe en el
    classpath de la aplicación que este «ejecutando» dicho informe.

    Una vez copiada nuestra fuente, vamos a cambiar nuestro informe.
    Seleccionamos el área de texto en árabe, pulsamos
    en botón derecho y hacemos click en «Propiedades«.
    Dentro del menú Propiedades vamos a la pestaña «Fuentes«. El
    menú desplegable donde se selecciona la fuente del pdf
    («Nombre fuente PDF») es un menú editable, por lo que
    podemos escribir en él y  ponemos el nombre de
    nuestro archivo fuente (en el ejemplo es ARIAL.TTF). Además
    tenemos que cambiar la codificación del PDF y seleccionar la
    opción de «Identity-H
    (Unicode with horizontal writing)
    «.

    Estos cambios hacen que nuestro fichero .JRXML tenga este aspecto.

    <staticText>

        <reportElement

            
        x="159"

            
        y="42"

            
        width="131"

            
        height="16"

            
        key="staticText-6"/>

         <box topBorder="None"
    topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000"
    rightBorder="None" rightBorderColor="#000000" bottomBorder="None"
    bottomBorderColor="#000000"/>

         <textElement
    textAlignment="Center">

            
    <font fontName="Arial" pdfFontName="ARIAL.TTF" isPdfEmbedded
    ="true" pdfEncoding ="Identity-H"/>

         </textElement>

       
     <text><![CDATA[ِعفثىفهش]]></text>

    </staticText>

    Ahora comprobamos que nuestro PDF se genera correctamente…

    Nuestro ejemplo lo hemos hecho con árabe pero podriamos probarlo con todos los idiomas que deseemos…

    Conclusión

    Como veis, la exportación de informes en diferentes idiomas con iReport  no es particularmente
    complicado. Nosotros, los miembros de Autentia,
    intentamos acercaros ese conocimiento a través de nuestros
    tutoriales. Pero si la solución a vuestros problemas no se
    encuentra en www.AdictosAlTrabajo.com, ya sabéis que
    podéis poneros en contacto con nosotros para que os
    asesoremos y formemos.

    4 COMENTARIOS

    1. Esta muy bueno el tutorial, lo unico que no logre solucionar es lanzar mi informe desde una aplicación web (server) con el servidor de aplicaciones Tomcat 6 y la plataforma es linux Debian cuando utilizo tipo de fuente de datos para código de barras.
      No puedo decirle cual es el tipo fuente de datos, ya que utilizo código de barras. Esto si me funciona bien bajo Windows. Pero no logre hacerlo bajo Linux.

    2. Buenas tardes ..

      Bueno eh leido varios de sus tutoriales y me han sido de gran ayuda gracias por ello. Actualmente me encuentro con un problema que solicita el generar varios archivos jasper y que se unan en un pdf, es decir varios archivos jasper iguales que al ejecutarse en java se unan en un PDF. Eh estado buscando como realizarlo pero la verdad es que no encuentro nada relacionado. Espero pueda ayudarme. De antemano gracias y Dios le bendiga.

    3. Es un muy buen tutorial para ganar conocimientos…..pero yo tengo un pequeño problema trabajo con netbeans 6.1 y este trae acoplado el ireport 3.1 lo ke yo estoy asiendo es pasar un codigo(1-07211)a mi reporte, pero que este codigo se muestre con la fuente de codigo de barras lo cual funciona en el ireport cuando le pongo preview, pero a la hora de exportar al pdf no me reconoce la fuente de codigo de barras y me muestra el codigo normal(1-07211),intente varias cosas ya para tratar de de ke al exportar me reconosca la fuente pero aun nada espero alguien pueda darme una solucion si no es mucho pedir graciassss

    DEJA UNA RESPUESTA

    Por favor ingrese su comentario!

    He leído y acepto la política de privacidad

    Por favor ingrese su nombre aquí

    Información básica acerca de la protección de datos

    • Responsable:
    • Finalidad:
    • Legitimación:
    • Destinatarios:
    • Derechos:
    • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad