Batik Bridge 1.17 jar 无法访问外部资源

问题描述 投票:0回答:1

我在我的项目中使用batik 1.16。需要将其版本增加到 1.17。实际上,在从 SVG 创建文档时,我们正在从外部资源加载页面,但 Batik 1.17 在执行此操作时会抛出异常。使用 Batik 1.17 时访问外部资源的任何解决方案。

错误:

从SVG创建图像 [] 2023 年 11 月 3 日 12:45:37 错误 [forensic.core.aspect.LoggingAspect.logAfterThrowing:98] 发生异常! : org.apache.batik.transcoder.TranscoderException:null 附上异常: 尝试加载外部资源时无法访问当前文档 URL(例如 https://something.jpg)。外部资源将不会被加载,因为无法验证它来自与文档相同的位置。 在 org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:228) ~[batik-transcoder-1.17.jar:?] 在 org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92) ~[batik-transcoder-1.17.jar:?] 在 org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142) ~[batik-transcoder-1.17.jar:?] 在 org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:158) ~[batik-transcoder-1.17.jar:?] 在 com.brown.core.utils.SVGRasterizer.transcode(SVGRasterizer.java:47) ~[com.forensic.core-0.0.1-SNAPSHOT.jar:?]

svg graphics batik
1个回答
0
投票

在 Batik 1.17 中实现上述更改(https://issues.apache.org/jira/browse/BATIK-1349)后,默认情况下会阻止外部资源加载。

要解决此问题,您需要显式添加下一个转码提示:

PNGTranscoder transcoder = new PNGTranscoder();
transcoder.addTranscodingHint(SVGAbstractTranscoder.KEY_ALLOW_EXTERNAL_RESOURCES, Boolean.TRUE);
© www.soinside.com 2019 - 2024. All rights reserved.