Author: tilman Date: Sun Oct 22 12:16:58 2023 New Revision: 1913200 URL: http://svn.apache.org/viewvc?rev=1913200&view=rev Log: PDFBOX-5706: use the last app14Adobe entry, as done by Harald Kuhr in twelvemonkeys
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/DCTFilter.java Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/DCTFilter.java URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/DCTFilter.java?rev=1913200&r1=1913199&r2=1913200&view=diff ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/DCTFilter.java (original) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/DCTFilter.java Sun Oct 22 12:16:58 2023 @@ -193,10 +193,18 @@ final class DCTFilter extends Filter Element tree = (Element)metadata.getAsTree("javax_imageio_jpeg_image_1.0"); Element markerSequence = (Element)tree.getElementsByTagName("markerSequence").item(0); NodeList app14AdobeNodeList = markerSequence.getElementsByTagName("app14Adobe"); - if (app14AdobeNodeList != null && app14AdobeNodeList.getLength() > 0) + if (app14AdobeNodeList != null) { - Element adobe = (Element) app14AdobeNodeList.item(0); - return Integer.parseInt(adobe.getAttribute("transform")); + int app14AdobeNodeListLength = app14AdobeNodeList.getLength(); + if (app14AdobeNodeListLength > 0) + { + if (app14AdobeNodeListLength > 1) + { + LOG.warn("app14Adobe entry appears several times, using the last one"); + } + Element adobe = (Element) app14AdobeNodeList.item(app14AdobeNodeListLength - 1); + return Integer.valueOf(adobe.getAttribute("transform")); + } } // PDFBOX-5488: plan B: use ColorSpaceType from the other metadata tree.