Firefox SVG形状在有笔画时不打印

时间:2013-07-17 14:27:33

标签: firefox svg

我遇到了一个SVG形状的问题,这些形状有一个笔划并试图让它们在firefox中打印。

这是最简单的例子:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
    <rect x="0" y="0" rx="15" ry="15" width="300" height="400" style="stroke:black;stroke-width:5;" fill="black" />
    <circle id="FirstCircle" cx="50" cy="50" r="30" stroke="black" stroke-width="2" fill="white" style="opacity:0.75;"/>
    <circle id="SecondCircle" cx="50" cy="150" r="30" fill="white" style="opacity:0.75;"/>
</svg>

当我尝试打印时,第一个形状会做两件事之一:

  1. 根本没有显示
  2. 它在边界框中显示偏离中心。
  3. 没有笔划的第二个形状按预期显示,预期显示。

    在屏幕上显示时,按预期显示预期的位置。当我尝试打印时,问题就出现了。

    我尝试过不同比例因子(50% - 100%)和默认收缩以适应。

    以下是我尝试打印时的内容:

    imageoutput

    这是定义的行为还是有人知道如何纠正这个问题?

    我不喜欢这个形状上的笔触,并且可以轻松地将形状分层以获得相同的效果,但是很高兴知道为什么会这样。

    修改

    罗伯特·朗森指出这似乎是一个火狐漏洞。提交了一份报告here,他们正在调查。

1 个答案:

答案 0 :(得分:0)

您需要指定width元素的heightsvg来解决此问题:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="400">
    <rect x="0" y="0" rx="15" ry="15" width="300" height="400" style="stroke:black;stroke-width:5;" fill="black" />
    <circle id="FirstCircle" cx="50" cy="50" r="30" stroke="black" stroke-width="2" fill="white" style="opacity:0.75;"/>
    <circle id="SecondCircle" cx="50" cy="150" r="30" fill="white" style="opacity:0.75;"/>
</svg>