Hi Kevin, "Kevin Whittington" <[EMAIL PROTECTED]> wrote on 10/25/2005 03:07:37 PM:
> I just noticed that the PrintTranscoder that inherits from the > SVGAbstractTranscoder does not throw a TranscoderException as the > ImageTranscoders do. The JavaDoc states that it does throw the > TranscoderException however the code does not. The problem is that the PrintTranscoder is a bit different from the other transcoders in that the 'transcode' method doesn't actually transcode anything, it simply collects URL's for later printing as one potentially multi-page document. > This appears to be a bug. In my application (which led me to > discover this problem), I transcode an SVG document and call > the print() method from a PrintTranscoder. If the SVG > document being transcoded has an unrecognizable tag, the > transcoder internally throws an exception but no exception > is passed up to the public transcode() method. This is because by the time the exception is generated the 'transcode' method has long since exited. The Print transcoder doesn't look at the content until you call print. > Therefore, my calling code is completely unaware that the document > has not printed due to the error. > Is this the intended behavior of the PrintTranscoder class? Yes, and no, there is no good way for the PrintTranscoder to throw an error during the call to 'transcode'. It is theoretically possible for it to throw an error in response to 'print()' although not easy since the actual error is detected in the 'Printable.print' method which can't throw an error, so it would have to 'ferret it away' until it get's back into the 'PrintTranscoder.print' method at which point it could re-wrap it as a PrinterException. However we don't do that. Instead you should provide an implementation of an ErrorHandler to the Transcoder in which case you will be called when the parse of the SVG file fails (or just about anything else goes wrong). --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
