Martin Hajduch created FOP-2842:
-----------------------------------
Summary: Incompatibility between Batik / FOP / TwelweMonkey's
ImageIO / <fo:instream-foreign-object> tag
Key: FOP-2842
URL: https://issues.apache.org/jira/browse/FOP-2842
Project: FOP
Issue Type: Bug
Reporter: Martin Hajduch
Fix For: 2.3
Attachments: exception.txt
Please see also: [https://github.com/haraldk/TwelveMonkeys/issues/476]
When using Batik 1.11 / FOP 2.3 / TwelweMonkey's ImageIO 3.4.1,
<fo:instream-foreign-object> with embedded SVG image does not work correctly.
What happens is, that org.apache.fop.render.intermediate.AbstractIFPainter
class creates ImageInfo object with URI being null, through this piece of code:
{quote}protected void drawImageUsingDocument(final Document doc,
final Rectangle rect) {
final ImageManager manager = getFopFactory().getImageManager();
ImageInfo info = null;
try {
info = manager.preloadImage({color:#d04437}*null*{color}, new
DOMSource(doc));
{quote}
This subsequently failes in FOP's InternalResourceResolver, which contains code:
{quote}public Resource getResource(String stringUri) throws IOException,
URISyntaxException {
if ({color:#d04437}*stringUri.startsWith*{color}("data:")) {
return new Resource(resolveDataURI(stringUri));
}
return getResource(cleanURI(stringUri));
}
{quote}
This obviously cannot work if stringUri is null.
When TwelweMonkey's ImageIO is removed from the classpath, and
xmlgraphics-commons is used instead, it works _(PDF is generated)_.
However, I need ImageIO in my project for other tasks.
Any ideas?
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)