Am 28.08.2015 um 07:57 schrieb Jon Wu:
Thanks for the guidance on not creating a PageDrawer. It was already in our codebase like that and I was adapting without checking examples until now. Since it was wrong, nevermind what I had before except to say that I was generating a transparent BufferedImage with it in 1.x and 2.0.0 from Feb.

Are both of these correct way to use PDFBox? With either of these on the latest SNAPSHOT, I'm getting a black background.

1. new PDFRenderer(document).renderPageToGraphics(0, graphics);
2. new PDFRenderer(document).renderImageWithDPI(0, resolution,
ImageType.ARGB);

With #1, I was able to make it work by writing a transparent background before renderPageToGraphics, but that is ugly of course. There's nothing special about the PDF and it works fine with the latest pdfbox-app.jar.

Every PDF is unique... upload your PDF somewhere, binary attachments don't work on the mailing list.

Tilman


Tilman, yes setting a black transparent background doesn't really make sense as a workaround, but given that I'm basically writing a couple lines and I'm using ARGB, I don't know what else could be wrong.

For reference, I attached the PNG I get with my general code on 1.x and 2.0.0 from Feb (expected), and the black image converted to PNG that I'm getting with 2.0.0 latest. The PDF to generate these is attached too.


On Wed, Aug 26, 2015 at 11:45 PM, Tilman Hausherr <[email protected] <mailto:[email protected]>> wrote:

    Am 27.08.2015 um 02:56 schrieb Jon Wu:

        I'm getting a solid black background trying to convert a PDF
        to an ARGB
        BufferedImage after updating from 2.0.0-20150209.214830-1071
        <tel:214830-1071> to
        2.0.0-20150826.181706-1650. Is there any recent change that
        could be
        causing that?

        --- Working OK on 20150209 ---

        On 20150209, I had this and it worked fine - producing a
        transparent image
        once I converted to PNG using code like this:

             BufferedImage result = new BufferedImage(width, height,
        BufferedImage.TYPE_INT_ARGB);
             Graphics2D graphics = result.createGraphics();
             new PageDrawer(new PDFRenderer(document),
        page).drawPage(graphics,
        mediaBox);


    That isn't the way you're supposed to use PDFBox.


        --- Updating to latest broke things ---

        When updating to the current snapshot, I simply changed the
        last line to
        use the new API:

             new PDFRenderer(document).renderPageToGraphics(0, graphics);

        Unfortunately, with this change + the newer version, I get a black
        background on my BufferedImage instead of a transparent one.

        I get the same issue when I do the following:

             new PDFRenderer(document).renderImageWithDPI(0, resolution,
        ImageType.ARGB);

        I'd normally think there's something wrong with my code, but
        this is the
        only change I've made. Is there something wrong with the
        rendering in the
        latest PDFBox?


    The best would be that you upload your PDF somewhere so we can
    have a look at it.

    The current code starts with a default bufferedimage of the type
    you pass. Non ARGB images are assigned a white background, the
    other images are kept as is.


        --- Workaround ---

        With renderPageToGraphics, if I call
        graphics.setBackground(new Color(0, 0,
        0, 0)); before rendering the page, I avoid this issue.
        However, it seems
        like this shouldn't be necessary.


    So you're setting a black transparent background.


        -- Cropping when rendering? ---

        As a side note, I sort of miss being able to conveniently crop
        the PDF
        before rendering with a rectangle, but maybe I should just be
        doing that in
        Graphics2D land.


    Tilman


        Thanks,
        Jon



    ---------------------------------------------------------------------
    To unsubscribe, e-mail: [email protected]
    <mailto:[email protected]>
    For additional commands, e-mail: [email protected]
    <mailto:[email protected]>




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to