miércoles, 20 de junio de 2007

POI en Java

En mi busqueda por encontrar algunas librerias para leer plantillas Word y convertirlas en documentos, tuve muchas maneras de hacerlo y en un principio me decidi por utilizar las las APIs SDK de StarOffice y OpenOffices pero tuve algunos problemas el codigo era correcto pero al momento de ejecutar el proyecto no encontraba el ejecutable swriter de open office asi que si saberlo la solucion siempre estubo conmigo y recorde que en algun tiempo para realizar unos reportes a excel utilice una libreria que se pueden descargar de http://jakarta.apache.org/site/downloads/index.html, la libreria esta casi al final de lista que aparece en la parte izquierda de la pagina y se llama POI, una libreria en un principio desarrollada para el tratamiento de documentos XML y posteriormente vieron que era bueno y salio HSSF para el tratamiento de archivo XLS y finalmente como ultima entrega de este año salio HWPF para el tratamiento de documentos WORD, cabe mencionar que como libreria va iniciando no encontraran mucha informacion y mas que nada ejemplos de como utilizarla pero bueno con un poko de conocimiento en cuanto a tratamiento de archivos PDF, Excel que he tenido con otras librerias como lo es iTextSharp y el API OpenOffice me di a la tarea de iniciar con mi propio ejemplo de como utilizarla, cabe mencionar que solo la utilizo para abrir una plantilla .dot en una pagina web y posteriormente actualizo el documento y lo subo a mi servidor, esta ultima parte no la veremos, solo dejare el ejemplo simple y sencillo que despliega un documento utilizando un servlet para su visualizacion.

1.- Primero nos descargamos la libreria POI, de preferencia la ultima entrega que es del 2007.

2.- Ya que se tiene la libreria creamos un aplicacion WEB, para lo cual utilizo el entorno de desarrollo netbeans.

3.- Abrimos el jsp que se llama index.jsp y añadimos un control html form, al cual le colocaremos un boton de tipo Submit que solo invocara el servlet que hara todo el trabajo para la visualziacion del documento.

Asi quedo mi jsp:








Por cierto el servlet se llama Download.

4.- Acto seguido es crear un Servlet dentro de un paquete que llamaremos DownLoad, asi como el nombre de nuestro Servlet.

5.- Seguimos y colocamos las siguientes referencias en nuestro servlet:

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

debo suponer que las librerias (.jar) de POI ya han sido referenciadas a nuestro proyecto.

6.- Iniciamos con el codigo:

a) Creamos una instancia a la clase InputStream para leer la plantilla al tiempo que especificamos donde reside dicha plantilla.

InputStream stream = new FileInputStream("/root/documentos/etapas.dot");
HWPFDocument doc = null;
POIFSFileSystem fs;

al mismo tiempo declaramos un HWPFDocument que sera el repositorio de la plantilla, asi como un POIFSFileSystem para colocar de manera temporal el contenido del stream.

b)Colocamos la informacion dentro de nuestro documento creado que le llamos "doc":

try
{
fs = new POIFSFileSystem(stream);
doc = new HWPFDocument(fs);
}
catch (IOException e)
{
}

c) Finalmente colocamos el codigo que enviara nuestro documento a un espacio de memoria reservado.

try
{
response.setContentType("application/msword");
ServletOutputStream outputStream = response.getOutputStream();
doc.write(outputStream);
outputStream.flush();
outputStream.close();
}
catch(Exception ex)
{

}

Recuerden que deben colocar el tipo de documento que deseamos ejecutar en este caso sera un documento Word y no importa que gestor de documentos utilice.

Reservamos nuestra variable ServletOutStream, salida para el docuento, escribimos el documento en nuestra variable y listo al ejecutar nuestro servlet aparecera en nuestra pagina web una ventana en la cual nos indicara que se desea hacer con el archivo si guardarlo o abrirlo.

Bueno eso seria todo, tal vez no soy muy bueno explicando pero este codigo se explica por si solo, por cierto el documento todo el contenido de la plantilla pero tambien es posible iniciar desde cero un documento HWPFDocument.

viernes, 15 de junio de 2007

Recuerdan

Para todos los amantes del cine y que recuerdan ese gran filme titulado "El abogado del diablo" les cuento que ha salido una nueva version aunque esta lleva como titulo "Crimen Perfecto", aunque yo la hubiera "El abogado contra el Diablo" y nuevamente una sublime actuacion del señoron anthony hopkins es una pelicula que vale la pena ir a ver no se arrepentiran.

Que sucede en mi pais

Hace algun tiempo deje de ver y leer noticias, me sentia frustado de ver lo que sucedia; pero hoy me doy cuenta que estar informado es muy satisfactorio, pero saben es tan extraño que en mi pais cada vez las personas son mas paranoicas y para muestra esta la perosna que hace dos dias entro a un centro de educacion preescolar y descargo su ira contra la rectora de esta institucion y que mejor manera que descargarla que de un cañon 9 mm, que sucede acaso se esta haciendo ralidad el infierno en tu propio pueblo, pero sea como sea y cambiando de canal ¿porque nuestro congreso se aunmento en 18000 pesos su sueldo?, sera por la nueva ley de impuestos que desean autorizar, que les sucede piensan que todos podemos subir nuestro sueldo si los impuestos suben que les pasa.
Saben al menos no me siento tan frustado pues al ver una pelea en el congreso al menos se que lo hacen en sus cindo sentidos o tal vez dopados y no como el ejempolo que nos dio el presidente de francia, jijiji.
Solo me pregunto cuando dejaremos la mediocridad de lado, no lo se tal vez cuando ocurra un golpe de estado disfrazado y de esa manera calmar al pueblo, por favor señores estos es para todos ya hay que iniciar nuestra propia lucha y recuerden que no siempre con violencia o desnudandonos se arreglan las cosas, y el ejemplo mas claro fue Gandy, pero bueno al parecer se nos da eso de aprender de otras culturas mas desarrolladas que nostros, jajaja. Por favor somos mejor que eso solo piensenlo un poko y hay que dejar las palabras de lado y empezar actuar, recuerden que si no puedes cambiar el mundo por lo menos podemos empezar con nuestra comunidad.

lunes, 11 de junio de 2007

Quien dice que sin titulo uno no hace nada...

Por Scott Malone

CAMBRIDGE, EEUU (Reuters) - Bill Gates se encargó el jueves de un negocio que dejó pendiente.

Gates, que se retiró de Harvard en tercer año para dedicarse a la empresa de tecnología Microsoft Corp. y convertirse en el hombre más rico del mundo, acudió a la universidad para recoger un título honorífico.

"Queremos reconocer al integrante no graduado más ilustre de la clase de Harvard College de 1977," dijo el rector de la universidad, Steven Hyman.

"Mientras sus compañeros, incluído su amigo Steve Ballmer -actual presidente ejecutivo de Microsoft -, estaban ocupados preparando sus exámenes, él preparaba una revolución, el auge de la computación personal (...) Parece que llegó el momento de que su 'alma mater' le entregue el diploma," añadió Hyman.

Gates, que tiene 51 años, sonreía durante los comentarios de Hyman y saludaba con un movimiento de cabeza los aplausos de los graduados en la ceremonia.

La carencia de un título nunca frenó el ascenso de Gates a la cima de los negocios.

Gates y sus colegas fueron lo suficientemente astutos en 1980 para negociar un acuerdo con International Business Machines Corp., que dio a la naciente compañía de software el derecho a cobrar por la licencia de su sistema operativo a los fabricantes de una nueva generación de computadoras.

El arreglo finalmente transformó el negocio de las computadoras, al trasladar el poder que tenían los fabricantes a las compañías de programación.

Hoy, cientos de fabricantes venden miles de marcas de computadoras cada año, pero el 90 por ciento y más de esos aparatos usan el sistema operativo Windows de Microsoft .

En Harvard, Gates vivía en el mismo pasillo que Ballmer, quien no abandonó la escuela y se graduó, luego de que Gates dejó la universidad para enfocarse con su amigo de la infancia Paul Allen en Microsoft, la compañía que fundaron en 1975.