如何让 rsvg 为 SVG 假设 96 dpi?

How to get rsvg to assume 96 dpi for SVG?

当我使用

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

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

这是一个简单的 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 中,中间文本和右侧文本具有完全相同的大小,因为这些应用程序似乎假定 1pt = 1.333333px,这是 CSS 的建议。但是,rsvg 似乎假定 1pt = 1.25px,这会导致文本大小不同。我怎样才能让 rsvg 正确输出它(如 Inkscape 和 Firefox)。

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

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

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

我不熟悉 rsvg-convert.exe,但这是我首先要尝试的。根据需要调整宽度和高度。

在这里使用 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 中比较高度。