I was able to reproduce the message after setting up log4j properly.

The good news is that your PDF is produced. In the source code, it is an INFO and not a WARNING or an ERROR, although I admit it is scary.

I'll see if I can fix this...

Tilman

Am 20.10.2014 um 19:10 schrieb Tilman Hausherr:
Hi,

I was able to run that code and create a PDF, although I don't have your jpeg file, I used another.

Please upload that jpeg somewhere, or email it to me, or post the URL.

Tilman

Am 20.10.2014 um 10:13 schrieb [email protected]:
Hi Tilman,

please find below the shortest possible code to reproduce the error, as requested.

The message I get is as follows:

Oct 20, 2014 10:08:45 AM org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage getColorSpace INFO: About to return NULL from unhandled branch. filter = COSName{DCTDecode}

My pom.xml contains the following entries:

<properties>
       <pdfbox.version>1.8.7</pdfbox.version>
...
<dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>${pdfbox.version}</version>
</dependency>
...

Best regards,


Philippe

-------------------------------------

public class App {

     public static void main(String[] args) {
         new App();
     }
          public App() {

         go();
        } // end main
          private void go() {

         try {

             PDDocument doc = new PDDocument();

             PDPage page = null;
             PDPageContentStream pcs = null;
             page = addNewPage(doc, PDPage.PAGE_SIZE_A4);
             pcs = new PDPageContentStream(doc, page);
                          loadLogoImage(
                 new File(
                     "/home/p/Desktop/data/img/doodle.jpg"
                 ),
                 doc,
                 pcs);
               pcs.close();

             doc.save(
                 "/home/p/Desktop/data/pdf/test.pdf");
             doc.close();
                      } catch (IOException ioe) {
             ioe.printStackTrace();
         } catch (Exception e) {
             e.printStackTrace();
         }

     } // end test

    private PDPage addNewPage(PDDocument doc, PDRectangle rect) {

        PDPage page = new PDPage(rect);
        doc.addPage(page);
        return page;

    }

    public void loadLogoImage(
        final File pathToImage,
        PDDocument pdDocument,
        PDPageContentStream pdPageContentStream) {

        InputStream logoInputStream = null;
        PDJpeg logoImage = null;

        if (pathToImage.exists()) {
            try {
                logoInputStream = new FileInputStream(pathToImage);
            } catch (FileNotFoundException fnfe) {
                fnfe.printStackTrace();
            }
        } else {
System.err.println("Invalid path to logo image: " + pathToImage.toString());
            return;
        }

        if (logoInputStream != null) {
            try {
                logoImage = new PDJpeg(pdDocument, logoInputStream);
                if (logoImage != null) {
                    pdPageContentStream.drawImage(logoImage, 100, 100);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
System.err.println("Could not draw image because input stream is null.");
        }

    }



}

--------------------------------



----- Mail original -----
De: "Tilman Hausherr" <[email protected]>
À: [email protected]
Envoyé: Samedi 18 Octobre 2014 14:23:01
Objet: Re: "About to return NULL from unhandled branch"

If you are sure that you get this error with 1.8.7, then please post the
shortest possible code that reproduces the error.

I just used the PDFToImage or PDFReader commands from the command line
application, which calls PDPage.convertToImage().

Tilman

Am 18.10.2014 um 14:16 schrieb Tilman Hausherr:
Hi,

I downloaded the file at the link you gave me (I assume you don't want
it to become public), and I didn't get the error you mention, I get
many warnings:

Okt 18, 2014 1:52:00 PM
org.apache.pdfbox.util.operator.pagedrawer.ClosePath process
WARNUNG: java.awt.geom.IllegalPathStateException: missing initial
moveto in path definition
java.awt.geom.IllegalPathStateException: missing initial moveto in
path definition
     at java.awt.geom.Path2D$Float.needRoom(Unknown Source)
     at java.awt.geom.Path2D.closePath(Unknown Source)
     at
org.apache.pdfbox.util.operator.pagedrawer.ClosePath.process(ClosePath.java:55)
     at
org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:557)
     at
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:268)
     at
org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)
     at
org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)
     at
org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:139)
at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:801)
     at
org.apache.pdfbox.util.PDFImageWriter.writeImage(PDFImageWriter.java:130)
     at org.apache.pdfbox.PDFToImage.main(PDFToImage.java:226)
     at org.apache.pdfbox.PDFBox.main(PDFBox.java:96)

The reason are sequences like this in the PDF:

708 388.2756347656 m
708 380.2756347656 l
S
h
/F1 8 Tf
0 0 0 rg
BT
31 381.2756347656 Td
9.52 TL
() Tj
T*
ET
h



h = closepath ("connects the end of a subpath back to its starting
point"). The last "h" doesn't have a starting point.

However the pages are rendered, I tested with 1.8.7, 1.8.6, 1.8.8 and
2.0.

Either you are using a much older version, or you uploaded the wrong
file.

Tilman



Am 16.10.2014 um 18:35 schrieb Tilman Hausherr:
That error is a follow-up error on another error. There was probably
a problem with the DCTDecode filter, i.e. a JPEG in the PDF. Please
upload the PDF somewhere, as you can't attach it here.

Tilman

Am 16.10.2014 um 14:36 schrieb [email protected]:
Hi,

When I run a Java program that uses the PdfBox 1.8.7 API, the
following message appears several times:

"About to return NULL from unhandled branch. filter =
COSName{DCTDecode}"

Does anyone have any idea what might cause it?

Many thanks.

Cheers,

Philippe


Reply via email to