danfickle / openhtmltopdf

An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF/UA)!
https://danfickle.github.io/pdf-templates/index.html
Other
1.93k stars 359 forks source link

javax.imageio.IIOException: Incompatible color conversion #105

Open tfga opened 7 years ago

tfga commented 7 years ago

Hi,

This error occurs when I try to convert an HTML with a specific embedded base64-encoded image. Here's what I believe is the relevant part of the stack trace:

Caused by: javax.imageio.IIOException: Incompatible color conversion
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkColorConversion(JPEGImageReader.java:973)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1078)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1034)
    at javax.imageio.ImageReader.read(ImageReader.java:940)
    at org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory.readJPEG(JPEGFactory.java:138)
    at org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory.createFromByteArray(JPEGFactory.java:93)
    at org.apache.pdfbox.pdmodel.graphics.image.JPEGFactory.createFromStream(JPEGFactory.java:74)
    at com.openhtmltopdf.pdfboxout.PdfBoxOutputDevice.realizeImage(PdfBoxOutputDevice.java:915)
    ... 55 more

Close to the point where the exception is thrown, I found this comment:

// XXX - We do not currently support any indexed color models,
// though we could, as IJG will quantize for us.
// This is a performance and memory-use issue, as
// users can read RGB and then convert to indexed in Java.

[com.sun.imageio.plugins.jpeg.JPEGImageReader:886]

outColorSpaceCode == 4, which corresponds to JPEG.JCS_CMYK -- one of the unsupported color models, apparently.

This is the image in question:

<img src="data:image/jpeg;base64,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YjL5pEyo7SeI6f8AU3rHUeqN6t9aLm2OYQW4zCHTtO5lbtv6Kuhrv8HX/OK/9fOj9T6tgYtWBT69ldxe8bmtgbXNn9IWrqUxR48nHGVa/oRr01/VC3gxcE43ofnlfqv+tJ4PHf8A4y8bEqxKMSlldFbaqz+jLg1g2M+lbt3bQpdL+ovU83qH7S+s1wuduDjQHby+PotteIrrob/oaV3SdEZJmxCIB/S4B6lHFAUZyMgD6eOXpt53679Lz+p9EbjYNXrXC9jyzc1vtG7c6XkN7q59VcLKwPq/h4mWz0sippFjJDoJc530m+36JWqkmGUuARr0g3fivEY8ZlfqoAj+r5LpJJJi94jof1f6xi/XPM6lkY+zDtsyXMt3tMix5dV7Gnf72rt02idPySkTchRoLMcYxjUTYs+OvV//2f/tEHpQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAAAAAAAAAAAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA1MAAAAGAAAAAAAAAAAAAAAwAAAAqgAAAA8AbQBhAHIAYwBhAFQASgBEAEYAVAAtAGEAegB1AGwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAKoAAAAwAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA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bwBwACAAQwBTADIAAAABADhCSU0EBgAAAAAABwAGAAAAAQEA/+E6aWh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iMy4xLjEtMTExIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIj4KICAgICAgICAgPHhhcE1NOkRvY3VtZW50SUQ+dXVpZDpGQjY1MTc3NjFFRThFMzExODI5MTg1M0M1MzJFMzdFNjwveGFwTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhhcE1NOkluc3RhbmNlSUQ+dXVpZDo4OEIxMDc5QzIxRThFMzExODI5MTg1M0M1MzJFMzdFNjwveGFwTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhhcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+dXVpZDpGNzY1MTc3NjFFRThFMzExODI5MTg1M0M1MzJFMzdFNjwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+dXVpZDpGNzY1MTc3NjFFRThFMzExODI5MTg1M0M1MzJFMzdFNjwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94YXBNTTpEZXJpdmVkRnJvbT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+CiAgICAgICAgIDx4YXA6Q3JlYXRlRGF0ZT4yMDE0LTA1LTMwVDE0OjQxOjIwLTAzOjAwPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhhcDpNb2RpZnlEYXRlPjIwMTQtMDUtMzBUMTQ6NDE6MjAtMDM6MDA8L3hhcDpNb2RpZnlEYXRlPgogICAgICAgICA8eGFwOk1ldGFkYXRhRGF0ZT4yMDE0LTA1LTMwVDE0OjQxOjIwLTAzOjAwPC94YXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDUzIgV2luZG93czwveGFwOkNyZWF0b3JUb29sPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9qcGVnPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iPgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT40PC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8cGhvdG9zaG9wOkhpc3RvcnkvPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6TmF0aXZlRGlnZXN0PjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyOzM2NTg5RDEwRDBCMjc1OUY0OEE3RDNDMzNGNzY0OTM5PC90aWZmOk5hdGl2ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE3MDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj40ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+LTE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6TmF0aXZlRGlnZXN0PjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtDMjI5NDk5MzgxMzE1MUFFRjkzRDZFMjk5Njg5OEFENzwvZXhpZjpOYXRpdmVEaWdlc3Q+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+/+4ADkFkb2JlAGRAAAAAAv/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQEBAQEBQYFBQUFBQUGBgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQoJCg0PDg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAFAgAMACqBAERAAIRAQMRAQQRAP/dAAQAFv/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQn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" />
danfickle commented 7 years ago

Hi @tfga I did some research on this issue (finally) and it appears the problem is two fold. Firstly the Java standard library does not support JPEGs with indexed colors. Secondly, even if it did the PDF JPEG code is basic and does not support outputting custom indexed color spaces.

I would suggest you convert the image to either RGB, CMYK or greyscale before embedding in the document. I believe this can be done with the TwelveMonkeys JPEG plugin or a variety of image tools in other prgramming languages.

tfga commented 7 years ago

Hi, @danfickle, Thank you for your comment! Unfortunately, the HTML I'm trying to convert comes from another organization... we don't have much control over it. I would have to extract this embedded image, make the conversion you mention and then replace the <img> element in the original document...

Hum. Maybe this is feasible. I'll give it a try.

Thanks again for you answer, for your research and for the pointer to the TwelveMonkeys JPEG plugin. I'll look into it. :+1: