特定のサイズ(A4)で印刷するためのSVGファイルを自動生成しようとしています。私は、絶対単位ではなく、 'ユーザ単位'しか許さないパスを使用したいと考えています。SVGとDPI、絶対単位とユーザー単位:InkscapeとFirefoxの比較ImageMagick
絶対単位(例:ドキュメントサイズ)とパス(どこでも)を持つSVGファイルを '公開'することはできません。なぜなら、視聴者間で正しく動作することができないからです。
「デフォルトDPI」を指定するなど、レンダリングの一貫性を得る方法はありますか?
別の言い方をすると、絶対ユニットを放棄することなく、すべての視聴者に同じようにレンダリングするための下の例を得ることができますか?
関連する他のアプリケーションと同じようにイメージをレンダリングする方法はありますか? (Egは、私は「変換」の-density
オプションを試してみましたが、私はInkscapeの者またはFirefox」出力と一致する出力を得ることができませんでした。)
例:私は1つのSVGファイルを作成しました
、
- 左::四角やユーザー単位での対角
- 中:赤対角線(パス)で3つの黒い四角形(矩形)の正方形とインチで対角(私に最も論理的な選択だったようで、しかしです許可されていません)
- 右:別の視聴者には異なるレンダリングユーザー単位のミリメートルの広場、対角線
:
- のInkscape:90 DPI、すべての正方形と同じ大きさ、赤対角線試合
- のFirefox:96
- 大きい(又は短い対角)で変換することが正方形後者DPI?:(長いまたは対角)72 DPI、後者の正方形小へ
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="200mm"
height="100mm"
>
<g transform="translate(50,50)">
<rect
width="100."
height="100."
x="10"
y="10" />
<path style="stroke: #ff0000" d="M 10 10 L 110 110" />
</g>
<g transform="translate(200,50)">
<rect
width="1.111in"
height="1.111in"
x="0.1111in"
y="0.1111in" />
<path style="stroke: #ff0000" d="M 0.1111in 0.1111in L 1.111in 1.111in" />
</g>
<g transform="translate(350,50)">
<rect
width="1.111in"
height="1.111in"
x="0.1111in"
y="0.1111in" />
<path style="stroke: #ff0000" d="M 10 10 L 110 110" />
</g>
</svg>
Inkscapeは(私のデフォルトの '視聴者):
Firefoxの(赤い線が右下隅に到達しないことに注意してください。 I)のスクリーンショットを作り、ソートの任意トリミング:
ImageMagickの(所与のファイル名以外はオプションを変換しない):
問題の説明に役立つhttp://stackoverflow.com/questions/1132269/can-i-use-mixed-units-with-path-elementが見つかりました。 – BlackShift
Inkscape [0.92](http://wiki.inkscape.org/wiki/index.php/Release_notes/0.92#Important_changes):CSSの標準と一致するように、デフォルト解像度が90dpiから96dpiに変更されました。 – qwert2003