Gracias al trabajo, por decirlo de esa manera, me tocó el problema de generar un PDF de un RTF, como ya es por muchos conocidos OpenOffice puede generar PDF’s sin utilizar programas o herramientas externas, me di a la tarea de investigar un poco y encontré unas librerías que hacen uso de OpenOffice, para mas información le dejo el link http://www.artofsolving.com/opensource/jodconverter

En esta página nos vamos al area de downloads y descargamos la librería jodconverter-x.y.z , en la versión más actualizada.

Como requisito para poder utilizar esa librería y poder realizar la conversión es necesario tener OpenOffice instalado, al tenerlo instalado nos vamos a la siguiente ruta, desde consola, esto es válido en GNU/Linux y Windows.

$ cd /OPEN_OFFICE_HOME/program/

Al estar ahí escribimos el siguiente comando:

$ soffice –headless –accept=”socket,host=localhost,port=8100;urp;” –nofirststartwizard

Al realizar esto levantamos openoffice como un servicio.

Dentro de lo que estamos descargando del link anterior, desempaquetamos el zip de cualquier forma posible, lo digo de esta manera para los amantes de la consola en GNU/Linux.

Ahora como prueba podemos realizar una conversión de un archivo RTF a PDF desde la línea de comando escribiendo en consola lo siguiente:

$ java –jar /lib/jodconverter-cli-x.y.z.jar file.rtf file.pdf

El primer parámetro es la ruta del archivo que existe físicamente en disco duro y el segundo es la ruta del archivo con formato PDF que se va a crear.

Ahora muy bien se puede utilizar estas librerías escribiendo un poco de código de Java. En cualquier IDE creamos un proyecto y agregamos la librerías que están dentro de la carpeta lib del directorio que se creó al desempaquetar el zip que se descargó.

Ya lo he hecho de varias maneras, una, si no se quiere escribir mucho código y no hay ninguna configuración o requisito extra se puede utilizar un process con la línea de comando anterior.

Ejemplo:

String [] cmd = {«java», «-jar», «lib/jodconverter-cli-2.2.2.jar», «file.rtf», «file.pdf»};
Process p = Runtime.getRuntime().exec(cmd);
p.waitFor();

O se puede hacer de la siguiente forma

OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
File fileInput = new File(«file.rtf»);
File fileOutput = new File(«file.pdf»);
converter.convert(fileInput, fileOutput);
connection.disconnect();

Primero se realiza la conexión al socket enviando como parámetro el puerto que se indicó en a línea de comando descrita anteriormente.

Luego creamos una instancia para realizar la conversión.

Creamos dos instancias de la clase java.io.File, la primera contiene el archivo RTF y la segunda contiene el archivo PDF a crear.

Luego se invoca el método convert y realiza la conversión.

Todo lo anterior para que funcione y no muestre ninguna excepción se debe de haber levantado OpenOffice como un servicio.

Se da el caso en que se tiene que hacer el uso de la clase DocumentFormat, como en el siguiente ejemplo:

OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
connection.connect();
DocumentFormatRegistry registry = new DefaultDocumentFormatRegistry();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
InputStream input = new FileInputStream(«file.rtf»);
DocumentFormat inputFormat = registry.getFormatByFileExtension(«rtf»);
OutputStream output = new FileOutputStream(«file.pdf»);
DocumentFormat outputFormat = registry.getFormatByFileExtension(«pdf»);
converter.convert(input, inputFormat, output, outputFormat);
output.close();
input.close();
connection.disconnect();

De esta manera es una forma fácil de generar PDF a partir de plantillas que estén en formatos RTF, DOC, y cualquier otro formato que soporte OpenOffice.

Bueno, al parecer ya es noticia vieja, esperada por muchos no tanto por otros como yo, IBM negocia para comprar Sun Microsystem, y como ya es costumbre IBM tiene la costumbre de comprar y desaparecerlo, si en verdad sucede haber que pasa con Java, MySQL, Solaris, etc, etc, etc.

http://www.informador.com.mx/tecnologia/2009/87519/6/negocia-ibm-compra-de-sun-microsystems.htm

Bueno haber que pasa, al parecer la crisis financiera mundial esta haciendo estas cosas.

Según en este blog IBM explica porque Java no es bueno que se diga con la Web 2.0

http://emilio.aesinformatica.com/2009/03/21/java-y-la-web-20/

Espero que Java no desapareza, no me gustaría estar trabajando solo en .NET.

Haciendo un deploy de OC4J a Tomcat 6.0 apareció este error en el log de Tomcat, el cual se puede dar por dos motivos (buenos esos me dieron a mí) uno de ellos es porque la jdk del sistema no es compatible con Tomcat, googleando por ahí descubrí que la jdk 1.5 es compatible con Tomcat 5.5 si se instala una jdk superior dará este problema. En mi caso Tomcat 6.0 lo instalé con una jdk 1.6 update 10 y no hubo ningún problema ahora para que el deploy que se haya realizado en Jdeveloper para Tomcat funcione hay que copiar ciertos archivos JAR que se encuentran dentro de la carpeta de Jdeveloper, los cuales son:

/bc4j/lib
/bc4j/jlib
/jlib
/jdbc/lib
/BC4J/redist
/ord/jlib
/sqlj/lib
/jdev/lib
/lib

Todas estas librerías deben de ser copiadas a la carpeta lib de donde se tenga instalado Tomcat. Con esto solo falta levantar el servicio de la aplicación dentro de la interfaz de Tomcat y listo.

Gracias al trabajo que tengo aprendí una manera de generar archivos xls con java, normalmente se utiliza el Jakarta POI pero en el Web lo podemos hacer de otra manera. Bueno para empezar, cuando creamos un archivo xls con puras tablas html lo que estamos haciendo es un archivo plano, a la hora de abrirlo o querer descargarlo en Firefox, el no lee la extensión pero sabe que se trata de archivo plano entonces lo muestra en el navegador (a veces).

Para evitarnos problemas y querer descargar el archivo y no visualizarlo (dependiendo de la configuración del navegador) creamos una página JSP y escribimos lo siguiente

<%@page contentType="application/vnd.ms-excel"%>
<%@page contentType="application/vnd.ms-excel"%>
<%response.setHeader("Content-Disposition", "attachment; filename=\"Archivo.xls\""); %>

Y luego de eso escribimos tablas HTML.

Esto también se puede hacer utilizando un pequeño servlet de la siguiente manera:

public class VisualizarExcel extends HttpServlet {
private static final String CONTENT_TYPE = "application/vnd.ms-excel; charset=windows-1252";

public void init(ServletConfig config) throws ServletException {
super.init(config);
}

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
response.setHeader("Content-Disposition", "attachment; filename=\"Archivo.xls\"");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>VisualizarExcel</title></head>");
out.println("<body>");
out.println("<table><tr><td>HOLA<td></tr></table>");
out.println("</body></html>");
out.close();
}
}

Fuenta de Informacion: http://diesil-java.blogspot.com/2007/04/generar-xls.html