You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Petr Slaby (JIRA)" <ji...@apache.org> on 2014/06/11 14:39:02 UTC

[jira] [Created] (PDFBOX-2132) Provide a pluggable exception handler to PDFStreamEngine

Petr Slaby created PDFBOX-2132:
----------------------------------

             Summary: Provide a pluggable exception handler to PDFStreamEngine
                 Key: PDFBOX-2132
                 URL: https://issues.apache.org/jira/browse/PDFBOX-2132
             Project: PDFBox
          Issue Type: Improvement
          Components: Rendering
    Affects Versions: 2.0.0
            Reporter: Petr Slaby
         Attachments: ExceptionHandler.patch

In our text processing and OMS application, PDFs are used as attachments to documents and rendered to target formats, among others AFP or PCL. The rendering part is implemented as a Graphics2D which gets called from PageDrawer and produces corresponding commands in the target printing language. 

As PDF is a much richer language than AFP or PCL, there are cases when we are not able to directly implement the corresponding g2d function (e.g. partial transparency of objects in AFP as it only supports transparency masks in bitmaps). In such case, the g2d implementation throws an UnsupportedOperationException which is supposed to abort the rendering in PDFBox. We catch the exception back in our code and render the PDF as a full page bitmap using a BufferedImage instead.

Current PDFBox trunk implementation swallows all exceptions that happen in PDFStreamEngine. For our purposes, a pluggable exception handler that can log all exceptions and re-throw UnsupportedOperationException would be perfect. A simple solution that works for me is shown in the attached patch.



--
This message was sent by Atlassian JIRA
(v6.2#6252)