[
https://issues.apache.org/jira/browse/PDFBOX-5036?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Gerstinger updated PDFBOX-5036:
---------------------------------------
Description:
An IllegalArgumentException (runtime exception) is thrown in the getImage()
method of PDImageXObject. The method declares to throw IOException, which is
fine, but I do not know how to prevent it to throw the
IllegalArgumentException. Only happens for some PDFs, one that is affected is
attached.
Here is the code that provokes the exception:
{{{color:#000080}public class {color}Test {}}
{{ {color:#000080}public static void {color}main(String[] args) {}}
{{ {color:#000080}try {color}{}}
{{ PDDocument document = PDDocument.load({color:#000080}new
{color}File({color:#008000}"Phaeton.pdf"{color}));}}
{{ PDResources pdRes =
document.getPages().get({color:#0000ff}0{color}).getResources();}}
{{ {color:#000080}for {color}(COSName name : pdRes.getXObjectNames()) {}}
{{ PDXObject o = pdRes.getXObject(name);}}
{{ {color:#000080}if {color}(o {color:#000080}instanceof {color}PDImageXObject)
{}}
{{ PDImageXObject img = (PDImageXObject) o;}}
{{ img.getImage(); {color:#808080}// This throws an
java.lang.IllegalArgumentException (runtime exception) - bug in PDFBOX
{color} }}}
{{ }}}
{{ } {color:#000080}catch{color}(IOException e) {}}
{{ System.{color:#660e7a}out{color}.println({color:#008000}"IOException
thrown..."{color});}}
{{ }}}
{{ }}}
{{}}}
was:
An IllegalArgumentException (runtime exception) is thrown in the getImage()
method of PDImageXObject. The method declares to throw IOException, which is
fine, but I do not know how to prevent it to throw the
IllegalArgumentException. Only happens for some PDFs, one that is affected is
attached.
Here is the code that provokes the exception:
{{
public class Test {
public static void main(String[] args) {
try {
PDDocument document = PDDocument.load(new File("Phaeton.pdf"));
PDResources pdRes = document.getPages().get(0).getResources();
for (COSName name : pdRes.getXObjectNames()) {
PDXObject o = pdRes.getXObject(name);
if (o instanceof PDImageXObject) {
PDImageXObject img = (PDImageXObject) o;
img.getImage(); // This throws an
java.lang.IllegalArgumentException (runtime exception) - bug in PDFBOX
}
}
} catch(IOException e) {
System.out.println("IOException thrown...");
}
}
}
}}
> IllegalArgumentException in PDImageXObject.getImage()
> -----------------------------------------------------
>
> Key: PDFBOX-5036
> URL: https://issues.apache.org/jira/browse/PDFBOX-5036
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 2.0.21
> Environment: JDK11
> Reporter: Andreas Gerstinger
> Priority: Major
> Attachments: Phaeton.pdf
>
>
> An IllegalArgumentException (runtime exception) is thrown in the getImage()
> method of PDImageXObject. The method declares to throw IOException, which is
> fine, but I do not know how to prevent it to throw the
> IllegalArgumentException. Only happens for some PDFs, one that is affected
> is attached.
> Here is the code that provokes the exception:
> {{{color:#000080}public class {color}Test {}}
> {{ {color:#000080}public static void {color}main(String[] args) {}}
> {{ {color:#000080}try {color}{}}
> {{ PDDocument document = PDDocument.load({color:#000080}new
> {color}File({color:#008000}"Phaeton.pdf"{color}));}}
> {{ PDResources pdRes =
> document.getPages().get({color:#0000ff}0{color}).getResources();}}
> {{ {color:#000080}for {color}(COSName name : pdRes.getXObjectNames()) {}}
> {{ PDXObject o = pdRes.getXObject(name);}}
> {{ {color:#000080}if {color}(o {color:#000080}instanceof
> {color}PDImageXObject) {}}
> {{ PDImageXObject img = (PDImageXObject) o;}}
> {{ img.getImage(); {color:#808080}// This throws an
> java.lang.IllegalArgumentException (runtime exception) - bug in PDFBOX
> {color} }}}
> {{ }}}
> {{ } {color:#000080}catch{color}(IOException e) {}}
> {{ System.{color:#660e7a}out{color}.println({color:#008000}"IOException
> thrown..."{color});}}
> {{ }}}
> {{ }}}
> {{}}}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]