如何使rsvg假定SVG为96 dpi?

时间:2018-09-20 13:48:31

标签: svg dpi librsvg

当我使用

rsvg-convert.exe -f pdf -o <output-name>.pdf <input-name>.svg

我得到的结果与在Inkscape和Firefox中呈现SVG的方式不同。

这是一个简单的测试SVG:

<svg width="150" height="100" xmlns="http://www.w3.org/2000/svg">
  <text y="50" font-size="12" fill="black">Test</text>
  <text x="50" y="50" font-size="12pt" fill="black">Test</text>
  <text x="100" y="50" font-size="16px" fill="black">Test</text>
</svg>

在Inkscape和Firefox中,middel和正确的文本具有完全相同的大小,因为这些应用程序似乎假定1pt = 1.333333px(这是CSS建议)。但是,rsvg似乎假设1pt = 1.25px,这会导致文本大小不同。如何获得rsvg正确输出(如Inkscape和Firefox)。

我用-p尝试了选项-d96,但是也没有给出正确的结果。

2 个答案:

答案 0 :(得分:1)

在rsvg-convert 2.40.20中可以设置dpi:

rsvg-convert -f pdf --dpi-x=96 --dpi-y=96 -o <output-name>.pdf <input-name>.svg

我还确认将输出格式设置为svg(文本将转换为路径),并在Inkscape中比较高度。

答案 1 :(得分:0)

许多应用程序可以正确处理宽度和高度均为英寸的SVG,例如

<svg width="1.5in" height="1in" xmlns="http://www.w3.org/2000/svg">
</svg>

我对rsvg-convert.exe不熟悉,但这是我尝试的第一件事。根据需要调整宽度和高度。