Hello!

I have some problems embedding FOP 0.92b with an overridden Print-Renderer,
similar to the  ExampleFO2OldStylePrint.java example.

Her is my simplified sourcecode:

class printFO
{
    public static void main(String[] args)
    {
        try {
            PrinterJob printerJob = PrinterJob.getPrinterJob();
            PrintRenderer p_renderer = new PrintRenderer(printerJob);
            
            FopFactory fopFactory = FopFactory.newInstance();
            FOUserAgent foUserAgent= fopFactory.newFOUserAgent();

            foUserAgent.setRendererOverride(p_renderer);
             
            Fop fop= fopFactory.newFop(MimeConstants.MIME_FOP_PRINT, 
foUserAgent,
null);
            File sourcefile=new File(args[0]);
            String baseURL = null;
            
            baseURL = new File(sourcefile.getAbsolutePath()).
                getParentFile().toURL().toExternalForm();
            
            foUserAgent.setBaseURL(baseURL);

            Result res = new SAXResult(fop.getDefaultHandler());

            TransformerFactory factory = TransformerFactory.newInstance();
            Transformer transformer;
            
            transformer = factory.newTransformer();

            // Create a SAXSource from the input Source file
            Source src = new StreamSource(sourcefile);

            // Start XSLT transformation and FOP processing
            transformer.transform(src, res);
        } catch (Exception e) {
        e.printStackTrace();
        }       
    }
}

This program works fine until I do not refer external images. When I do so,
Java comes to a NullPointerException. Here my example FO-File:
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";
xmlns:svg="http://www.w3.org/2000/svg";>
<fo:layout-master-set>
<fo:simple-page-master margin-bottom="0.5cm" margin-left="1.5cm"
margin-right="0.5cm" margin-top="1.1cm" master-name="A4"
page-height="29.7cm" page-width="21cm">
<fo:region-body column-count="1" column-gap="0.5cm" region-name="Layout"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow flow-name="Layout">
  <fo:block>
    Test!
  </fo:block>
<fo:block>
  <fo:external-graphic
src="file:///home/iwedekind/Programmierung/Java/barcode.svg"/>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>

Processing this file the following Stack trace is printed:
java.lang.NullPointerException
        at
org.apache.fop.render.java2d.Java2DRenderer.putImage(Java2DRenderer.java:1033)
        at
org.apache.fop.render.java2d.Java2DRenderer.renderImage(Java2DRenderer.java:1018)
        at
org.apache.fop.render.AbstractRenderer.renderViewport(AbstractRenderer.java:739)
        at
org.apache.fop.render.java2d.Java2DRenderer.renderViewport(Java2DRenderer.java:407)
        at
org.apache.fop.render.AbstractRenderer.renderInlineArea(AbstractRenderer.java:634)
        at
org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:609)
        at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:535)
        at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:585)
        at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:525)
        at
org.apache.fop.render.AbstractRenderer.renderFlow(AbstractRenderer.java:430)
        at
org.apache.fop.render.AbstractRenderer.renderMainReference(AbstractRenderer.java:409)
        at
org.apache.fop.render.AbstractRenderer.renderBodyRegion(AbstractRenderer.java:343)
        at
org.apache.fop.render.AbstractRenderer.renderRegionViewport(AbstractRenderer.java:288)
        at
org.apache.fop.render.AbstractRenderer.renderPageAreas(AbstractRenderer.java:261)
        at
org.apache.fop.render.java2d.Java2DRenderer.print(Java2DRenderer.java:1168)
        at sun.print.RasterPrinterJob.printPage(RasterPrinterJob.java:1785)
        at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1334)
        at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1196)
        at
org.apache.fop.render.print.PrintRenderer.stopRenderer(PrintRenderer.java:142)
        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
org.apache.xalan.transformer.TransformerIdentityImpl.endDocument(TransformerIdentityImpl.java:962)
        at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown
Source)
        at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown
Source)
        at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
        at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
        at printFO.main(printFO.java:68)

When I commended out the line overriding the Renderer, then everythings is
ok (but I cannot control the PrinterJob, and so it is no solution).

Any suggestions to this problem?

CU Immo!

PS.: My main point is to direct the printer output to a special printer and
a special tray, so I need this PrinterJob instance. If you have an
alternative way to do so: please drop me a note!

-- 
View this message in context: 
http://www.nabble.com/NullPointerException-while-printing-tf2225561.html#a6167228
Sent from the FOP - Users forum at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to