So I have this code which works. ByteArrayInputStream myByteArrayInputStream; InputSource myInputSource; SAXSource myXmlSAXSource; ByteArrayOutputStream myPdfBAOS; myFoFileOutputStream = new FileOutputStream(myFoFile); myFoByteArrayOutputStream = new ByteArrayOutputStream(); myStreamResult = new StreamResult(myFoByteArrayOutputStream); myByteArrayInputStream = new ByteArrayInputStream(myXmlByteData); myInputSource = new InputSource(myByteArrayInputStream); myXmlSAXSource = new SAXSource(myInputSource); myTransformer.transform(myXmlSAXSource,myStreamResult); myFoByteArrayOutputStream.writeTo(myFoFileOutputStream); myFoByteArrayOutputStream.close(); myPdfBAOS = new ByteArrayOutputStream(); myByteArrayInputStream = new ByteArrayInputStream(myXmlByteData); myInputSource = new InputSource(myByteArrayInputStream); myXmlSAXSource = new SAXSource(myInputSource); myFop = myFopFactory.newFop(fopMimeValue, myUserAgent, myPdfBAOS); myTransformResult = new SAXResult(myFop.getDefaultHandler()); myTransformer.transform(myXmlSAXSource, myTransformResult);
Now I try to rearrange that to a 2 step process to use the FO as input, and it crashes on the last statement. What am I missing? ByteArrayOutputStream myFoByteArrayOutputStream; StreamResult myStreamResult; SAXSource myXmlSAXSource; byte[] myFoByteData; ByteArrayOutputStream myPdfBAOS; myFoByteArrayOutputStream = new ByteArrayOutputStream(); myStreamResult = new StreamResult(myFoByteArrayOutputStream); myXmlSAXSource = createSAXSource(myXmlByteData); myTransformer.transform(myXmlSAXSource,myStreamResult); myFoByteData = myFoByteArrayOutputStream.toByteArray(); myFoByteArrayOutputStream.close(); ByteArrayInputStream myByteArrayInputStream; InputSource myInputSource; SAXSource myFoSAXSource; myPdfBAOS = new ByteArrayOutputStream(); myByteArrayInputStream = new ByteArrayInputStream(myFoByteData); myInputSource = new InputSource(myByteArrayInputStream); myFoSAXSource = new SAXSource(myInputSource); myFop = myFopFactory.newFop(fopMimeValue, myUserAgent, myPdfBAOS); myTransformResult = new SAXResult(myFop.getDefaultHandler()); myTransformer.transform(myFoSAXSource, myTransformResult);
