You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Vallikun Kathiresan <va...@mars-systems.com> on 2001/08/07 20:54:55 UTC
Question - Printing a PDF
I am relatively new to this topic. In our application we display a
ByteArray in the pdf format using the fop. What we would like to do is
instead send the contents to the printer instead of displaying it in pdf
or display in pdf at the same time send a copy to the printer.
Any suggestions appreciated!
Thanks
Vallikun
The piece of code that generates the byte array in pdf format is given
below:
private byte[] convertToPdf( String foXmlString )
throws Exception
{
//***********************************************
// transform an FO XML String into a PDF String
//***********************************************
// get a SAX parser (org.apache.xerces.parsers.SAXParser)
XMLReader parser = createParser();
// set the parser features
try
{
parser.setFeature("http://xml.org/sax/features/namespace-prefixes",true);
}
catch (SAXException e)
{
// note: fix exceptions to print stack trace of original exception
// see ServletUtils.getStackTraceAsString()
//*****
throw new Exception("Error in setting up parser feature " +
"namespace-prefixes.\n You need a parser " +
"which support SAX version 2");
}
ByteArrayOutputStream pdfStream = new ByteArrayOutputStream();
Driver driver = new Driver();
driver.setOutputStream(pdfStream);
driver.setRenderer(Driver.RENDER_PDF);
// create a reader for the FO XML string
Reader foReader = new StringReader(foXmlString);
driver.buildFOTree( parser, new InputSource( foReader ) );
foReader.close();
driver.format();
driver.render();
// close and flush the stream
pdfStream.flush();
pdfStream.close();
byte[] content = pdfStream.toByteArray();
return content;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org