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.
57 lines
1.7 KiB
57 lines
1.7 KiB
package siprp.planoactuacao.print;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.InputStream;
|
|
|
|
import org.jdom.Document;
|
|
import org.jdom.output.Format;
|
|
import org.jdom.output.XMLOutputter;
|
|
|
|
import siprp.Main;
|
|
import siprp.util.fop.PDFCreator;
|
|
|
|
import com.evolute.utils.xml.XSLTransformer;
|
|
|
|
public class PlanoActuacaoPDFCreator
|
|
{
|
|
|
|
public byte[] createPDF( Integer planoId, boolean web ) throws Exception
|
|
{
|
|
PlanoActuacaoToPrint plano = PlanoActuacaoPrintDataProvider.getProvider( web ).getPlanoToPrint( planoId );
|
|
Document foDoc = new Document( plano.toJdomElement() );
|
|
XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
|
|
ByteArrayOutputStream foBaos = new ByteArrayOutputStream();
|
|
outputter.output( foDoc, foBaos );
|
|
|
|
|
|
byte fo[] =
|
|
applyTemplate(
|
|
getClass().getClassLoader().getResourceAsStream(
|
|
PlanoActuacaoPrintDataProvider.getProvider( web ).empresaUsaPlanoAlargadoPorPlanoId( planoId ) ?
|
|
"siprp/planoactuacao/print/plano_actuacao_alargado.xsl"
|
|
: "siprp/planoactuacao/print/plano_actuacao.xsl" ),
|
|
new ByteArrayInputStream( foBaos.toByteArray() ) );
|
|
|
|
|
|
// FileOutputStream fos = new FileOutputStream("/home/jneto/Desktop/a.fo");
|
|
// fos.write(fo);
|
|
|
|
|
|
PDFCreator.setUserConfig(Main.fopConfigFile);
|
|
PDFCreator pdfCreator = PDFCreator.getPDFCreator();
|
|
|
|
byte pdf[] = pdfCreator.createPdfFromFo( fo );
|
|
return pdf;
|
|
}
|
|
|
|
public byte[] applyTemplate( InputStream xsl, InputStream dataStream ) throws Exception
|
|
{
|
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
|
XSLTransformer.getXSLTransformer().transform( dataStream, xsl, baos );
|
|
return baos.toByteArray();
|
|
}
|
|
|
|
}
|