我的SVG中必须有相对坐标的模式有问题。起初,我使用了PatternContentUnits =“objectBoundingBox”,它似乎适用于所有现代浏览器。但是,我想使用Batik Rasterizer来允许用户将SVG转换为PDF和/或PNG,而Batik Rasterizer似乎不支持patternContentUnits =“objectBoundingBox for SVG to PDF conversion。
<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转换))
有人有建议吗?在我看来,应该可以让视图解决方案在Firefox中运行吗?