如何让 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 中比较高度。
当我使用
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 中比较高度。