我的 SVG 中必须有相对坐标的模式有问题。起初,我使用了 patternContentUnits = "objectBoundingBox",这似乎适用于所有现代浏览器。但是,我想使用 Batik Rasterizer 允许用户将 SVG 转换为 PDF 和/或 PNG,而 Batik Rasterizer 似乎不支持 patternContentUnits = "objectBoundingBox for SVG 到 PDF 的转换。
<pattern id="Pattern2" x="0" y="0" width="1" height="1" patternContentUnits="objectBoundingBox">
<rect x="0.1" y="0" width="0.33" height="1" style="fill:rgb(39,80,215)"/>
<rect x="0.49" y="0" width="0.47" height="1" style="fill:rgb(11,198,221)"/>
</pattern>
作为替代方案,我发现了一个互联网帖子,其中他们使用 viewBox="0 0 1 1" preserveAspectRatio="none" 而不是 patternContentUnits = "objectBoundingBox"。该解决方案在 Chrome、IE9 以及 Batik Rasterizer (!) 中运行良好。但是,它在 Firefox (14) 中不起作用。
我在网上放了一个小例子:http:
//mgcv.cmbi.ru.nl/example.svg
(第一个适用于 Chrome、IE9 和 Batik Rasterizer,但不适用于 FF14。第二个适用于 Chrome、IE9 和FF14 但不在 Batik Rasterizer 中(PDF 转换)
有人有建议吗?在我看来,应该可以让 viewbox 解决方案在 Firefox 中运行?