Añado los fuentes de java

This commit is contained in:
2025-06-09 13:37:06 +02:00
parent d6c990e5d5
commit a97a6350ee
226 changed files with 57246 additions and 0 deletions
+245
View File
@@ -0,0 +1,245 @@
package com.tarisan.util;
import java.io.File;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.sax.SAXResult;
import javax.xml.transform.stream.StreamSource;
//import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FopFactory;
import com.tarisan.log.LogTarisan;
import com.tarisan.log.NivelLog;
public class XML2PDF {
public static void transformar(String ruta_xml, String ruta_xsl, String ruta_pdf) {
try {
/*El xml lo dejaremos en una ruta temporal para borrarlo al terminar
* El xsl está dentro de la carpeta css
* El jpg está dentro de la carpeta img
* El pdf lo dejaremos en la carpeta resultados
*/
LogTarisan.logger.log(NivelLog.INFO, "FOP XML2PDF");
//System.out.println("Preparando...");
LogTarisan.logger.log(NivelLog.INFO, "Preparando...");
//ServletContext sc = null;
//System.out.println("La ruta al xls es: " + sc.getRealPath("/"));
String ruta = WorkingDirectory.get().getAbsolutePath();
String sisop = System.getProperty("os.name");
String slash = "\\";
if(sisop.contains("indows"))
{
slash = "\\";
}
else{
slash = "/";
}
File baseDir = new File(ruta + slash);
File xslDir = new File(ruta + slash + ".." + slash + "css" + slash);
//File outDir = baseDir;
//outDir.mkdirs();
File xmlfile = new File(baseDir + ".." + slash + "resultados" + slash, ruta_xml);
File xsltfile = new File(xslDir, ruta_xsl);
File pdffile = new File(baseDir + ".." + slash + "resultados" + slash, ruta_pdf);
//System.out.println("XML de entrada: XML (" + xmlfile + ")");
LogTarisan.logger.log(NivelLog.INFO, "XML de entrada: XML (" + xmlfile + ")");
//System.out.println("Hoja de estilos xslt: " + xsltfile);
LogTarisan.logger.log(NivelLog.INFO, "Hoja de estilos xslt: " + xsltfile);
//System.out.println("PDF salida: (" + pdffile + ")");
LogTarisan.logger.log(NivelLog.INFO, "PDF salida: (" + pdffile + ")");
//System.out.println("Ejecutando...");
LogTarisan.logger.log(NivelLog.INFO, "Ejecutando...");
FopFactory fopFactory = FopFactory.newInstance();
//LogTarisan.logger.log(NivelLog.INFO, "Creamos la instancia FopFactory");
//FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
//LogTarisan.logger.log(NivelLog.INFO, "Creamos FOUserAgent");
OutputStream out = new java.io.FileOutputStream(pdffile);
//LogTarisan.logger.log(NivelLog.INFO, "Creando outputstream");
out = new java.io.BufferedOutputStream(out);
try {
Fop fop = fopFactory.newFop("text");
// .newFop("application/pdf", foUserAgent, out);
//LogTarisan.logger.log(NivelLog.INFO, "Creando Fop");
LogTarisan.setNivel("INFO");
TransformerFactory factory = TransformerFactory.newInstance();
//LogTarisan.logger.log(NivelLog.INFO, "Creando TransformerFactory");
Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));
//LogTarisan.logger.log(NivelLog.INFO, "Le pasamos el xsl al transformer");
transformer.setParameter("versionParam", "1.0");
Date fecha = new Date();
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
String cadenaFecha = formato.format(fecha);
transformer.setParameter("fecha", cadenaFecha);
//LogTarisan.logger.log(NivelLog.INFO, "Establecemos un parametro para el xsl");
Source src = new StreamSource(xmlfile);
//LogTarisan.logger.log(NivelLog.INFO, "Establecemos un nuevo origen con el xml");
Result res = new SAXResult(fop.getDefaultHandler());
//LogTarisan.logger.log(NivelLog.INFO, "Creamos el Result");
transformer.transform(src, res);
//LogTarisan.logger.log(NivelLog.INFO, "Ejecutamos el transformer.transform");
} finally {
out.close();
}
LogTarisan.logger.log(NivelLog.INFO, "Conversion realizada con éxito");
//System.out.println("Bien!");
LogTarisan.setNivel("ALL");
if(xmlfile.delete())
{
LogTarisan.logger.log(NivelLog.INFO,"Fichero xml eliminado correctamente");
}
else
{
LogTarisan.logger.log(NivelLog.WARN, "No se ha podido borrar el xml de la carpeta resultados.");
}
} catch (Exception e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error al convertir xml a pdf: " + e.toString());
}
}
public static void transformar(String ruta_xml, String ruta_xsl, String ruta_pdf, String ruta) {
try {
/*El xml lo dejaremos en una ruta temporal para borrarlo al terminar
* El xsl está dentro de la carpeta css
* El jpg está dentro de la carpeta img
* El pdf lo dejaremos en la carpeta resultados
*/
System.out.println("Preparando...");
//ServletContext sc = null;
//System.out.println("La ruta al xls es: " + sc.getRealPath("/"));
String sisop = System.getProperty("os.name");
String slash = "\\";
if(sisop.contains("indows"))
{
slash = "\\";
}
else{
slash = "/";
}
File xslDir = new File(ruta + slash + ".." + slash + "css" + slash);
File resDir = new File(ruta + slash + ".." + slash + "resultados" + slash);
//File outDir = baseDir;
//outDir.mkdirs();
File xmlfile = new File(resDir, ruta_xml);
File xsltfile = new File(xslDir, ruta_xsl);
File pdffile = new File(resDir, ruta_pdf);
System.out.println("XML de entrada: XML (" + xmlfile + ")");
//LogTarisan.logger.log(NivelLog.INFO, "XML de entrada: XML (" + xmlfile + ")");
System.out.println("Hoja de estilos xslt: " + xsltfile);
//LogTarisan.logger.log(NivelLog.INFO, "Hoja de estilos xslt: " + xsltfile);
System.out.println("PDF salida: (" + pdffile + ")");
//LogTarisan.logger.log(NivelLog.INFO, "PDF salida: (" + pdffile + ")");
System.out.println("Ejecutando...");
//LogTarisan.logger.log(NivelLog.INFO, "Ejecutando...");
FopFactory fopFactory = FopFactory.newInstance();
////LogTarisan.logger.log(NivelLog.INFO, "Creamos la instancia FopFactory");
//FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
//LogTarisan.logger.log(NivelLog.INFO, "Creamos FOUserAgent");
OutputStream out = new java.io.FileOutputStream(pdffile);
//LogTarisan.logger.log(NivelLog.INFO, "Creando outputstream");
out = new java.io.BufferedOutputStream(out);
try {
Fop fop = fopFactory.newFop("text");
//LogTarisan.logger.log(NivelLog.INFO, "Creando Fop");
//LogTarisan.setNivel("INFO");
TransformerFactory factory = TransformerFactory.newInstance();
//LogTarisan.logger.log(NivelLog.INFO, "Creando TransformerFactory");
Transformer transformer = factory.newTransformer(new StreamSource(xsltfile));
//LogTarisan.logger.log(NivelLog.INFO, "Le pasamos el xsl al transformer");
transformer.setParameter("versionParam", "1.0");
Date fecha = new Date();
SimpleDateFormat formato = new SimpleDateFormat("yyyy-MM-dd");
String cadenaFecha = formato.format(fecha);
transformer.setParameter("fecha", cadenaFecha);
//LogTarisan.logger.log(NivelLog.INFO, "Establecemos un parametro para el xsl");
Source src = new StreamSource(xmlfile);
//LogTarisan.logger.log(NivelLog.INFO, "Establecemos un nuevo origen con el xml");
Result res = new SAXResult(fop.getDefaultHandler());
//LogTarisan.logger.log(NivelLog.INFO, "Creamos el Result");
transformer.transform(src, res);
//LogTarisan.logger.log(NivelLog.INFO, "Ejecutamos el transformer.transform");
} finally {
out.close();
}
//LogTarisan.logger.log(NivelLog.INFO, "Conversion realizada con éxito");
System.out.println("Bien!");
//LogTarisan.setNivel("ALL");
if(xmlfile.delete())
{
//LogTarisan.logger.log(NivelLog.INFO,"Fichero xml eliminado correctamente");
System.out.println("Fichero xml eliminado correctamente");
}
else
{
//LogTarisan.logger.log(NivelLog.WARN, "No se ha podido borrar el xml de la carpeta resultados.");
System.out.println("No se ha podido borrar el xml de la carpeta resultados.");
}
} catch (Exception e) {
e.printStackTrace();
//LogTarisan.logger.log(NivelLog.ERROR, "Error al convertir xml a pdf: " + e.toString());
}
}
}