La primera reseña de Javadocx

En abril de 2011, Javadocx iba por su version 2.0. Para celebrarlo, y de paso comprobar cómo se estaba recibiendo por parte de los usuarios, le pedimos a Javier Abellán que lo reseñara en su blog Diario de Programación. Abellán es programador en C, C++ y Java, y desde

Artículos recientes

En abril de 2011, Javadocx iba por su version 2.0. Para celebrarlo, y de paso comprobar cómo se estaba recibiendo por parte de los usuarios, le pedimos a Javier Abellán que lo reseñara en su blog Diario de Programación. Abellán es programador en C, C++ y Java, y desde 2006 escribe sus experiencias profesionales en su blog.

Javier tuvo a bien revisar la librería y la documentación y después de algunas pruebas, de escribir sus impresiones en una entrada, lo cual le agradecemos enormemente.

Ahora que la librería cumple su primera década, rescatamos la entrada para todo aquel que le interese. Aunque, por supuesto, Javadocx es hoy en día un producto muy diferente, aún más versátil y sencillo (y con una documentación más amplia), algo que os animamos a probar mediante la descarga de su versión de prueba gratuita disponible en nuestra web.

Javadocx es una librería java que permite generar documentos docx

La gente de javadocx se puso en contacto conmigo a través de twitter. Querían que publicara una nota de prensa que anunciaba el lanzamiento de la versión 2.0. Así que me decidí primero a probar un poco la librería e incluso hacer algún pequeño tutorial en la Chuwiki si se terciaba.

La librería se baja en forma de fuentes java que necesitamos compilar con ant. Así que me descargué también ant, ya que hace tiempo que reemplacé su uso por maven y no lo tenía instalado. El compilado fue bien a la primera, salvo por unos pequeños warnings relativos a algo de unos caracteres extraños de un idioma extraño. No sé si el warning es importante, pero lo comento más abajo.

Miro la documentación en la página web de javadocx para ver cómo empezar. La documentación me remite a los ejemplos java que vienen con la librería, así que me voy a mirarlos. La verdad es que los ejemplos son muy sencillos y al ejecutarlos se genera el docx sin problemas. Casi nada más verlos y ejecutarlos, decidí que no merecía la pena hacer un tutorial en la Chuwiki. El tutorial, de hacerlo, sería prácticamente copiar y pegar esos ejemplos.

Me llevé una pequeña sorpresa al abrir el docx generado con el word. Nada más abrirlo me salen un par de errores, pero aceptando la ventana de error, el documento se abre correctamente. Comentando el problema con la gente de javadocx, me comentan que es un caso raro que pasa con algunas versiones concretas de sistema operativo/máquina virtual java y se debe a caracteres chinos y japoneses que no reconoce correctamente. Qué casualidad, justo los warnings que me dio al compilar. La verdad es que tengo un Windows Vista muy machacado (lleva casi cuatro años instalado) y yo soy un "culo inquieto", por lo que estoy continuamente instalando y desinstalando programas, librerías, herramientas y todo lo que se me ocurre.

Lo otro que he echado de menos es una documentación con las opciones que se pueden poner en los distintos métodos. Me explico. El siguiente ejemplo que viene con la librería genera un docx con un párrafo

CreateDocx docx = new CreateDocx("docx");

String text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"

+ " sed do eiusmod tempor incididunt ut labore et dolore magna "

+ "aliqua. Ut enim ad minim veniam, quis nostrud exercitation "

+ "ullamco laboris nisi ut aliquip ex ea commodo consequat. "

+ "Duis aute irure dolor in reprehenderit in voluptate velit "

+ "esse cillum dolore eu fugiat nulla pariatur. Excepteur sint "

+ "occaecat cupidatat non proident, sunt in culpa qui officia "

+ "deserunt mollit anim id est laborum.";

HashMap paramsText = new HashMap();

paramsText.put("b", "single");

paramsText.put("font", "Arial");

docx.addText(text, paramsText);

docx.createDocx("example_text");

Como se puede ver, al addText() se le pasa un paramsText que es un conjunto de parejas clave-valor. Pues bien, no he encontrado en la documentación un listado de qué claves son posibles ni sus valores posibles. Buscándolo, me puse a mirar dentro del código de la librería y he visto que prácticamente esas claves-valor son las que se escriben directamente en el docx. Eso hace pensar que esas claves-valor son propias del formato docx y no de la librería.

Me pongo a investigar el formato docx y veo que un docx no es más que un fichero zip que podemos desempaquetar con winzip, winrar o cualquiera de esas herramientas. Una vez desempaquetado, tenemos un montón de ficheros xml y efectivamente, esas parejas clave-valor forman más o menos parte de los xml.

Resumiendo, una librería muy sencilla de usar y a tener en cuenta si queremos generar desde java este tipo de documentos. La pequeña pega es que necesitaremos conocer o tener una referencia al formato docx para saber exactamente cómo hacer algo que no aparezca tal cual en los ejemplos que vienen.