forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.6 KiB
103 lines
2.6 KiB
/*
|
|
* FichaAptidaoCreator.java
|
|
*
|
|
* Created on May 14, 2007, 4:50 PM
|
|
*
|
|
* To change this template, choose Tools | Template Manager
|
|
* and open the template in the editor.
|
|
*/
|
|
|
|
package siprp.ficha;
|
|
|
|
import com.evolute.utils.fop.FOPCreator;
|
|
import com.evolute.utils.fop.FOPPrinter;
|
|
import com.evolute.utils.fop.PDFCreator;
|
|
import com.evolute.utils.strings.UnicodeChecker;
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.InputStream;
|
|
import java.util.HashMap;
|
|
|
|
/**
|
|
*
|
|
* @author lflores
|
|
*/
|
|
public class FichaAptidaoCreator implements FichaAptidaoConstants
|
|
{
|
|
private final FOPCreator fopCreator;
|
|
private final PDFCreator pdfCreator;
|
|
private final FOPPrinter fopPrinter;
|
|
|
|
private static FichaAptidaoCreator creator = null;
|
|
|
|
/** Creates a new instance of FichaAptidaoCreator */
|
|
private FichaAptidaoCreator()
|
|
{
|
|
fopCreator = FOPCreator.getFOPCreator();
|
|
pdfCreator = PDFCreator.getPDFCreator();
|
|
fopPrinter = FOPPrinter.getFOPPrinter();
|
|
}
|
|
|
|
public static FichaAptidaoCreator getCreator()
|
|
{
|
|
if( creator == null )
|
|
{
|
|
creator = new FichaAptidaoCreator();
|
|
}
|
|
return creator;
|
|
}
|
|
|
|
public void print( byte fo[] )
|
|
throws Exception
|
|
{
|
|
ByteArrayInputStream in = new ByteArrayInputStream( fo );
|
|
fopPrinter.printFO( in, true, true, null );
|
|
// System.out.println( "DONE" );
|
|
}
|
|
|
|
public void printSilent( byte fo[], String printerName )
|
|
throws Exception
|
|
{
|
|
ByteArrayInputStream in = new ByteArrayInputStream( fo );
|
|
fopPrinter.printFO( in, true, false, null );
|
|
}
|
|
|
|
public byte[] createFO( HashMap<String,String> values )
|
|
throws Exception
|
|
{
|
|
StringBuilder buff = new StringBuilder( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<FichaAptidao>\n" );
|
|
|
|
values.put( PORTARIA, "Portaria n. 299/2007, de 16 de Março" );
|
|
|
|
// ☐ square
|
|
// ☑ checked square
|
|
|
|
for( String key: values.keySet() )
|
|
{
|
|
buff.append( "\t<" + key + ">" );
|
|
String val = values.get( key );
|
|
buff.append( UnicodeChecker.parseToUnicode( "&#x", ";", val, true ) );
|
|
buff.append( "</" + key + ">\n" );
|
|
}
|
|
buff.append( "</FichaAptidao>" );
|
|
String xml = buff.toString();
|
|
|
|
System.out.println( "XML: " + xml );
|
|
|
|
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
|
InputStream xmlIn = new ByteArrayInputStream( xml.getBytes() );
|
|
|
|
InputStream xslStream = getClass().getClassLoader().getResourceAsStream( "siprp/ficha/ficha_aptidao.xsl" );
|
|
fopCreator.createFOfromXML( xmlIn, xslStream, out );
|
|
// System.out.println( "FO created" );
|
|
|
|
return out.toByteArray();
|
|
}
|
|
|
|
public byte[] createPDF( byte[] fo )
|
|
throws Exception
|
|
{
|
|
return pdfCreator.createPdfFromFo( fo );
|
|
}
|
|
}
|