Le 8 nov. 06 à 15:33, Jeremias Maerki a écrit :
The NullPointerException due to the fact that the code doesn't expect
that no ImageWriter for PNG is found. And that seems to be the case in
your environment. In a perfect world, you'd get a nice message that no
ImageWriter could be found, but that wouldn't help either in this
case.
The question is why there's no ImageWriter. Maybe this php-java-bridge
you use does something weird when setting up the classpath. I don't
have
any other explanation because the internal PNG writer is in the
xmlgraphics-commons.jar which is obviously there (ImageWriterRegistry
itself seems to work) but the "Service" class cannot discover the
plug-in files in the META-INF directory.
Correct ! I had trouble to declare the xmlgraphics-common jar.
Solved now
Thanks a lot
Olivier
Don't know how to help here without knowing about PHP and
php-java-bridge. Maybe someone else can help.
You asked about an example for multiple PNG files. I attached one
which
runs fine on my side.
On 08.11.2006 13:08:01 Olivier Mansour wrote:
Le 8 nov. 06 à 09:42, Olivier Mansour a écrit :
Le 6 nov. 06 à 14:55, Jeremias Maerki a écrit :
Creating multiple PNG files is only supported if output is done
to a
file (seems to be the case here). In this case, you have to set the
output file on the user agent in addition to the output stream:
useragent.setOutputFile(new File("D:/out.png"));
I have added this line after getting my user agent (with
newFOUserAgent()) :
$file_out = new Java ('java.io.File', $path_to_png);
$fop_ua->setOutputFile($file_out);
I have now an error on my transform action :
java.lang.Exception: Invoke failed: [o(TransformerImpl)]->transform
((Source)o(StreamSource), (Result)o(SAXResult)). Cause:
javax.xml.transform.TransformerException:
java.lang.NullPointerException Responsible VM: [EMAIL PROTECTED]://
java.sun.com/ at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transfo
rm
(TransformerImpl.java:651) at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transfo
rm
(TransformerImpl.java:281) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39) at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25) at
java.lang.reflect.Method.invoke(Method.java:585) at
php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1073) at
php.java.bridge.Request.handleRequest(Request.java:499) at
php.java.bridge.Request.handleRequests(Request.java:544) at
php.java.bridge.JavaBridge.run(JavaBridge.java:178) at
php.java.bridge.BaseThreadPool$Delegate.run(BaseThreadPool.java:37)
Caused by: javax.xml.transform.TransformerException:
java.lang.NullPointerException ... 11 more Caused by:
java.lang.NullPointerException at
org.apache.fop.render.bitmap.PNGRenderer.stopRenderer
(PNGRenderer.java:123) at
org.apache.fop.area.RenderPagesModel.endDocument
(RenderPagesModel.java:240) at
org.apache.fop.area.AreaTreeHandler.endDocument
(AreaTreeHandler.java:357) at
org.apache.fop.fo.FOTreeBuilder.endDocument(FOTreeBuilder.java:170)
at
com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endDocume
nt
(ToXMLSAXHandler.java:182) at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocu
me
nt(AbstractSAXParser.java:769) at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.endEn
ti
ty(XMLDocumentScannerImpl.java:560) at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.endEntity
(XMLEntityManager.java:1779) at
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load
(XMLEntityScanner.java:1758) at
com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipSpaces
(XMLEntityScanner.java:1274) at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl
$TrailingMiscDispatcher.dispatch(XMLDocumentScannerImpl.java:1247)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerIm
pl
.scanDocument(XMLDocumentFragmentScannerImpl.java:368) at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse
(XML11Configuration.java:834) at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse
(XML11Configuration.java:764) at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse
(XMLParser.java:148) at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse
(AbstractSAXParser.java:1242) at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transfo
rm
Identity(TransformerImpl.java:560) at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transfo
rm
(TransformerImpl.java:642) ... 10 more
someone has an example of code used to transform a FO file to several
png files with FOP ? I'am a bit confused right now ;-)
Thank you
Olivier
an idea ?
HTH
On 04.11.2006 18:00:09 Olivier Mansour wrote:
Hey
Another beginner question
I use fop 0.92 but I'am consedreing moving to trunk soon
I tried to generate png from a fo file
using command line works fine :
java -jar fop.jar -fo /tmp/test.fo -png ../../../web/uploads/
test.png
give severals png test.png, test2.png - one png for each page.
I am now trying using the API trought php-java-bridge (quite
similar
if we where using java)
here my code :
// Instanciate & configure FOP user agent
$fop_factory = new JavaClass
('org.apache.fop.apps.FopFactory');
$fop_factory = $fop_factory->newInstance();
$fop_factory->setUserConfig(new Java
('java.io.File',
sfConfig::get('sf_app_config_dir').'/fop.xconf'));
$fop_ua = $fop_factory->newFOUserAgent();
/*
* Setup output stream. Note: Using
BufferedOutputStream
* for performance reasons (helpful with
FileOutputStreams).
*/
$out = new Java('java.io.FileOutputStream',
$path_to_png);
$out = new Java('java.io.BufferedOutputStream',
$out);
// Construct fop with desired output format
$fop_mime_constants = new JavaClass
('org.apache.fop.apps.MimeConstants');
$fop = $fop_factory->newFop($fop_mime_constants-
MIME_PNG, $fop_ua, $out);
// Setup JAXP using identity transformer
$transformer_factory = new JavaClass
('javax.xml.transform.TransformerFactory');
$transformer_factory = $transformer_factory-
newInstance();
$transformer = $transformer_factory->newTransformer
();
// Setup input stream
$src = new Java
('javax.xml.transform.stream.StreamSource', $path_to_fo);
// Resulting SAX events (the generated FO) must be
piped through to FOP
$res = new Java
('javax.xml.transform.sax.SAXResult',
$fop->getDefaultHandler());
// Start XSLT transformation and FOP processing
$transformer->transform($src, $res);
the problem is just the first png is generated ! :-(
An idea ?
Thank you for your advices and making fop wich is great
Jeremias Maerki
<ExampleFO2MultiPNG.java>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Olivier Mansour http://www.clever-age.com
Clever Age Lyon - conseil en architecture technique
GSM: +33 6 11 03 23 77 Tél: +33 4 78 89 46 45
Clever Age vous invite à ses petits déjeuners du Jeudi
http://www.clever-age.com/actualites/petits-dejeuners/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]