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 Will Peterson <wp...@novell.com> on 2006/06/08 16:40:41 UTC

Suppress RTF

Quick question,
 
I am going to customize FOP to suppress the RTF gif image exception
when rendering documents.  (i.e.
org.apache.fop.render.rtf.rtflib.rtfdoc.RtfExternalGraphic$ExternalGraphicException:
The tag <fo:external-graphic> does not support gif - image type.)
 
Would it be recommended to recompile the whole fop.jar, or should I
just customize the one class (RtfExternalGraphic) and include it on the
class path.  Any suggestions here.
 
Thanks,
 
-Will

Re: Suppress RTF

Posted by Jeremias Maerki <de...@jeremias-maerki.ch>.
On 09.06.2006 00:08:52 Andreas L Delmelle wrote:
> On Jun 8, 2006, at 16:40, Will Peterson wrote:
> 
> Hi Will,
> 
> > Quick question,
> >
> > I am going to customize FOP to suppress the RTF gif image exception  
> > when rendering documents.  (i.e.  
> > org.apache.fop.render.rtf.rtflib.rtfdoc.RtfExternalGraphic 
> > $ExternalGraphicException: The tag <fo:external-graphic> does not  
> > support gif - image type.)
> >
> > Would it be recommended to recompile the whole fop.jar, or should I  
> > just customize the one class (RtfExternalGraphic) and include it on  
> > the class path.  Any suggestions here.
> 
> In theory, the following should work:
> 
> 1° download the FOP sources, modify that one class, then 'ant compile'
> 2° in the build directory, look for the .class file in question
> 3° replace the file in the fop.jar you already have with the freshly  
> compiled one
> 
> Then again, I'm wondering why I would do this... but it might be  
> handy if you need to minimize the hassle of maintaining a customized  
> FOP version :/
> As for myself, I'd probably just modify the source file, run 'ant  
> package', and replace the whole fop.jar.
> 
> If you have any interest in extending your customization to be a  
> configurable RTFRenderer-specific option, patches are welcome ;)

I think that would be the best approach. That the RTF output generates
some text in the output file if it encounters a problem loading an image
is a legacy from JFOR times. In our other output formats we send the
error message to the log and continue with no image. Not the best
approach either, depending on the requirements. So, for the moment it
may be better to simply change the code to issue a warning on the log
and ignore the image to match the behaviour of the other output formats.
For the long term, the following will be the right way to go:
http://wiki.apache.org/xmlgraphics-fop/ProcessingFeedback

Jeremias Maerki


Re: Suppress RTF

Posted by Andreas L Delmelle <a_...@pandora.be>.
On Jun 9, 2006, at 00:08, Andreas L Delmelle wrote:

> On Jun 8, 2006, at 16:40, Will Peterson wrote:
>
>>
>> Would it be recommended to recompile the whole fop.jar, or should  
>> I just customize the one class (RtfExternalGraphic) and include it  
>> on the class path.  Any suggestions here.
>
> In theory, the following should work:

Just realized that this may lead to very nasty runtime errors if some  
fop-dev decides on altering classes that one class depends on... So,  
yeah, would work in theory, provided that the related codebase isn't  
out-of-sync with your own version...

In short: if I were you, I'd go for the complete rebuild. That's the  
least likely to cause you any headaches.

Later,

Andreas


Re: Suppress RTF

Posted by Andreas L Delmelle <a_...@pandora.be>.
On Jun 8, 2006, at 16:40, Will Peterson wrote:

Hi Will,

> Quick question,
>
> I am going to customize FOP to suppress the RTF gif image exception  
> when rendering documents.  (i.e.  
> org.apache.fop.render.rtf.rtflib.rtfdoc.RtfExternalGraphic 
> $ExternalGraphicException: The tag <fo:external-graphic> does not  
> support gif - image type.)
>
> Would it be recommended to recompile the whole fop.jar, or should I  
> just customize the one class (RtfExternalGraphic) and include it on  
> the class path.  Any suggestions here.

In theory, the following should work:

1° download the FOP sources, modify that one class, then 'ant compile'
2° in the build directory, look for the .class file in question
3° replace the file in the fop.jar you already have with the freshly  
compiled one

Then again, I'm wondering why I would do this... but it might be  
handy if you need to minimize the hassle of maintaining a customized  
FOP version :/
As for myself, I'd probably just modify the source file, run 'ant  
package', and replace the whole fop.jar.

If you have any interest in extending your customization to be a  
configurable RTFRenderer-specific option, patches are welcome ;)


Cheers,

Andreas