当 svg 包含损坏的图像链接时如何处理蜡染转码器故障?

How to handle batik transcoder failure when svg contains broken image links?

我正在使用蜡染转码器将我的 svg 转换为 png 图像。

我在 svg 图像标签中有外部图像源。如果我的任何图像 link 损坏,Batik 将无法进行转换。

我收到以下错误

org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
null:0
The URI https://image.example/example1.png
on element <image> can'"t be opened because:
The URI can't be opened:
Server returned HTTP response code: 403 for URL: https://image.example/example1.png
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)
        at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source)
        at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)

有没有办法在图片标签损坏的情况下转换 svg?

我之前用的是batik-rasterizer 1.7,遇到了和你一样的问题。
您只需更新到 this 版本中的 batik-all 即可。

gradle:
编译组:'org.codeartisans.thirdparties.swing',名称:'batik-all',版本:'1.8pre-r1084380'

附上截图。长时间调试后发现问题是由 UknownHostException 引起的。

org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
null:0
The URI "https://url.com/MIP20212_support.png"
on element <image> can't be opened because:
JDK URL is corrupt or unsupported variant