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
>>
>