Я пытаюсь автоматически сгенерировать файл SVG, предназначенный, чтобы быть распечатанным на определенном размере (A4). Я хочу использовать путь в нем, который только позволяет 'пользовательские единицы', не 'абсолютные единицы'.
Мне кажется, что невозможно 'опубликовать' файл SVG, который имеет абсолютные единицы (например, размер документа) и путь где угодно, потому что я не могу заставить это работать правильно через средства просмотра.
Существует ли способ получить некоторую непротиворечивость в рендеринге, как определение 'DPI по умолчанию'?
Или помещенный по-другому: я могу заставить свой пример ниже представлять то же во всех средствах просмотра, не отказываясь от абсолютных единиц вообще?
Похожие страницы: Существует ли способ вынудить какое-либо из приложений ниже представить изображение таким же образом как одного из других? (Например, Я попробовал -density
опция 'преобразования', но я не мог заставить вывод соответствовать Inkscape или Firefox' вывод.)
Пример:
Я создал один файл SVG, с тремя черными квадратами (реагируют) с красной диагональю (путь):
Который представляет по-другому в различных средствах просмотра:
Код:
Inkscape (мое 'средство просмотра' по умолчанию):
Firefox (отмечают, что красная строка не достигает правого нижнего угла. Я сделал снимок экрана и обрезал вид произвольно):
ImageMagick (преобразовывают, никакие опции помимо данных имен файлов):
Все размеры в теге path указаны в пользовательских единицах измерения.
Вы не можете указать абсолютные единицы в теге path , поэтому путь в среднем квадрате не отображается.
Самый простой способ, который я нашел, - это установить единицы измерения с помощью окна просмотра :
Это правильно отображается в Inkscape и Firefox.
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="8in"
height="4in"
viewBox="0 0 8 4">
<g transform="translate(4,0.5)">
<rect
width="1.111"
height="1.111"
x="0.1111"
y="0.1111" />
<path d="M 0.1111,0.1111 l 1.111 1.111" style="stroke: #ff0000;stroke-width:0.01" />
</g>
</svg>