You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by Todd Hivnor <sp...@yahoo.com> on 2011/10/30 22:12:14 UTC

Generating PNG files from FO sources

I'm _finally_ getting around to upgrading from FOP 0.20 to FOP 1.0! 


My existing code uses org.apache.fop.apps.Driver. I see that is no longer available, so I'm trying to figure out how to port my code. I figured out PDF generation, but can't figure out how to render a PNG from an FO file. All the examples in documentation talk about PDF, I can't find a PNG example. 



Is there sample code I haven't found? Or can someone provide a hint as to what classes I should be using and the key method calls?


I found PNGRendererMaker so I can get a renderer. But I'm not sure what to do with it. Perhaps call it's renderXml method? In that case, what do I need for the namespace argument? 

I don't use XSLT, I just generate the FO code directly in Java. 

Any clues appreciated ...


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


Re: Generating PNG files from FO sources

Posted by Todd Hivnor <sp...@yahoo.com>.
Eric, thanks for your input. That is exactly the clue I needed, thanks.

I was thinking I needed to mess around with PNGRendererMaker but I now see I can simply use MimeConstants.MIME_PNG. Awesome!




----- Original Message -----
From: Eric Douglas <ed...@blockhouse.com>
To: fop-users@xmlgraphics.apache.org; Todd Hivnor <sp...@yahoo.com>
Cc: 
Sent: Monday, October 31, 2011 8:50 AM
Subject: RE: Generating PNG files from FO sources

If you're using embedded code you have a Fop fop = fopFactory.newFop( ... statement which accepts an outputstream.
If you want to keep your output in memory instead of writing it to disk you can read it from that stream.
Use a ByteArrayOutputStream instead of a FileOutputStream. 


-----Original Message-----
From: Todd Hivnor [mailto:spambox_98103@yahoo.com] 
Sent: Sunday, October 30, 2011 7:40 PM
To: fop-users@xmlgraphics.apache.org; Todd Hivnor
Subject: Re: Generating PNG files from FO sources

More info: 

I now realize that the convertFO2PDF  from https://xmlgraphics.apache.org/fop/1.0/embedding.html#ExampleFO2PDF can be modified to use MimeConstants.MIME_PNG in place of MimeConstants.MIME_PDF. Very straight-forward!


However ... that solution isn't quite what I'm looking for. In some cases I want a BufferedImage not a file. I guess I could save a file and then read in a BufferedImage. But I'm hoping to get the BufferedImage without having to write it out to disk. 


Also I can't get the page count. With AWTRenderer from FOP 0.20, I could call  getNumberOfPages to see if my report fit onto a single page. I've got code which then reduced the font size & tried again if the page count was greater than 1.


So, I guess my subject line should really be "Generating BufferedImages from FO sources" ...





----- Original Message -----
From: Todd Hivnor <sp...@yahoo.com>
To: "fop-users@xmlgraphics.apache.org" <fo...@xmlgraphics.apache.org>
Cc: 
Sent: Sunday, October 30, 2011 2:12 PM
Subject: Generating PNG files from FO sources

I'm _finally_ getting around to upgrading from FOP 0.20 to FOP 1.0! 


My existing code uses org.apache.fop.apps.Driver. I see that is no longer available, so I'm trying to figure out how to port my code. I figured out PDF generation, but can't figure out how to render a PNG from an FO file. All the examples in documentation talk about PDF, I can't find a PNG example. 



Is there sample code I haven't found? Or can someone provide a hint as to what classes I should be using and the key method calls?


I found PNGRendererMaker so I can get a renderer. But I'm not sure what to do with it. Perhaps call it's renderXml method? In that case, what do I need for the namespace argument? 

I don't use XSLT, I just generate the FO code directly in Java. 

Any clues appreciated ...


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


RE: Generating PNG files from FO sources

Posted by Eric Douglas <ed...@blockhouse.com>.
If you're using embedded code you have a Fop fop = fopFactory.newFop( ... statement which accepts an outputstream.
If you want to keep your output in memory instead of writing it to disk you can read it from that stream.
Use a ByteArrayOutputStream instead of a FileOutputStream. 


-----Original Message-----
From: Todd Hivnor [mailto:spambox_98103@yahoo.com] 
Sent: Sunday, October 30, 2011 7:40 PM
To: fop-users@xmlgraphics.apache.org; Todd Hivnor
Subject: Re: Generating PNG files from FO sources

More info: 

I now realize that the convertFO2PDF  from https://xmlgraphics.apache.org/fop/1.0/embedding.html#ExampleFO2PDF can be modified to use MimeConstants.MIME_PNG in place of MimeConstants.MIME_PDF. Very straight-forward!


However ... that solution isn't quite what I'm looking for. In some cases I want a BufferedImage not a file. I guess I could save a file and then read in a BufferedImage. But I'm hoping to get the BufferedImage without having to write it out to disk. 


Also I can't get the page count. With AWTRenderer from FOP 0.20, I could call  getNumberOfPages to see if my report fit onto a single page. I've got code which then reduced the font size & tried again if the page count was greater than 1.


So, I guess my subject line should really be "Generating BufferedImages from FO sources" ...





----- Original Message -----
From: Todd Hivnor <sp...@yahoo.com>
To: "fop-users@xmlgraphics.apache.org" <fo...@xmlgraphics.apache.org>
Cc: 
Sent: Sunday, October 30, 2011 2:12 PM
Subject: Generating PNG files from FO sources

I'm _finally_ getting around to upgrading from FOP 0.20 to FOP 1.0! 


My existing code uses org.apache.fop.apps.Driver. I see that is no longer available, so I'm trying to figure out how to port my code. I figured out PDF generation, but can't figure out how to render a PNG from an FO file. All the examples in documentation talk about PDF, I can't find a PNG example. 



Is there sample code I haven't found? Or can someone provide a hint as to what classes I should be using and the key method calls?


I found PNGRendererMaker so I can get a renderer. But I'm not sure what to do with it. Perhaps call it's renderXml method? In that case, what do I need for the namespace argument? 

I don't use XSLT, I just generate the FO code directly in Java. 

Any clues appreciated ...


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


Re: Generating PNG files from FO sources

Posted by Todd Hivnor <sp...@yahoo.com>.
More info: 

I now realize that the convertFO2PDF  from https://xmlgraphics.apache.org/fop/1.0/embedding.html#ExampleFO2PDF can be modified to use MimeConstants.MIME_PNG in place of MimeConstants.MIME_PDF. Very straight-forward!


However ... that solution isn't quite what I'm looking for. In some cases I want a BufferedImage not a file. I guess I could save a file and then read in a BufferedImage. But I'm hoping to get the BufferedImage without having to write it out to disk. 


Also I can't get the page count. With AWTRenderer from FOP 0.20, I could call  getNumberOfPages to see if my report fit onto a single page. I've got code which then reduced the font size & tried again if the page count was greater than 1.


So, I guess my subject line should really be "Generating BufferedImages from FO sources" ...





----- Original Message -----
From: Todd Hivnor <sp...@yahoo.com>
To: "fop-users@xmlgraphics.apache.org" <fo...@xmlgraphics.apache.org>
Cc: 
Sent: Sunday, October 30, 2011 2:12 PM
Subject: Generating PNG files from FO sources

I'm _finally_ getting around to upgrading from FOP 0.20 to FOP 1.0! 


My existing code uses org.apache.fop.apps.Driver. I see that is no longer available, so I'm trying to figure out how to port my code. I figured out PDF generation, but can't figure out how to render a PNG from an FO file. All the examples in documentation talk about PDF, I can't find a PNG example. 



Is there sample code I haven't found? Or can someone provide a hint as to what classes I should be using and the key method calls?


I found PNGRendererMaker so I can get a renderer. But I'm not sure what to do with it. Perhaps call it's renderXml method? In that case, what do I need for the namespace argument? 

I don't use XSLT, I just generate the FO code directly in Java. 

Any clues appreciated ...


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org