Crear un fichero PDF a partir de un XML

2626 vistas

El API estándar no provee de ningún mecanismo para transformar un XML en PDF. No obstante, existe una muy buena librería para ello: FOP (Formatting Object Processor).

Veamos un ejemplo de uso de esta librería:



java
  1. public static void crearPDF(String xml, String xsl, String pdf) throws Exception{
  2.   // creación del resultado (pdf)
  3.   Driver driver = new Driver();
  4.   driver.setRenderer(Driver.RENDER_PDF);
  5.   driver.setOutputStream(new java.io.FileOutputStream(pdf));
  6.   Result resultado = new SAXResult(driver.getContentHandler());
  7.  
  8.   // recuperación de la source xml
  9.   Source source = new StreamSource(xml);
  10.  
  11.   // creación del transformer en función del xsl
  12.   Source style = new StreamSource(xsl);
  13.   TransformerFactory transformerFactory = TransformerFactory.newInstance();
  14.   Transformer transformer = transformerFactory.newTransformer(style);
  15.  
  16.   // transformación
  17.   transformer.transform(source, resultado);
  18. }