Могу ли я в Inkscape ссылаться на pdf/svg вместо встраивания его содержимого?

Я использую Inkscape в качестве холста для компоновки существующих графиков PDF/SVG/PNG, которые я сделал в Python, а затем добавляю некоторые детали и текст к общей фигуре. Когда я импортирую файлы PDF/SVG через File >> Import... >> Link, они внедряются в Inkscape. Я заметил, что если я делаю это с растровым изображением, я получаю возможность ссылаться на файл вместо его встраивания, поэтому, когда я обновляю графики в Python, они автоматически обновляются в Inkscape.

Я не могу найти, как связать файлы PDF/SVG таким же образом. Я хочу сохранить графики PDF/SVG с полным разрешением вместо использования растров. Мой друг показал мне, как это сделать в Adobe Illustrator с PDF-файлами, но возможно ли это в Inkscape?

Ответы (3)

Связывание с внешними SVG-файлами (но, по-видимому, не с pdf-файлами) будет возможно с Inkscape 1.0 ( примечания к выпуску ). В Inkscape оно по-прежнему будет преобразовано в растровое изображение, но вы можете установить DPI при импорте и даже после него. Растеризация происходит внутри Inkscape, поэтому размер файла не увеличивается.

Кроме того, при просмотре в браузере связанный файл svg отображается как есть (без растеризации).

Inkscape 1.0 в настоящее время доступен в виде альфа-версии .

По состоянию на 20 сентября 2019 г. бета-версия 1.0 при преобразовании в другой формат по-прежнему будет экспортировать растровые изображения, а не напрямую отображать SVG. Изображения экспортируются с DPI, выбранным при импорте SVG, а не с тем, что указано при выводе, поэтому при импорте обязательно укажите разумный DPI.

Вы можете связать Inkscape SVG внутри другого Inkscape SVG, чтобы связанный файл автоматически обновлялся во всех файлах, использующих его, как связанное растровое изображение. Это достигается с помощью <image />тега следующим образом:

  1. Создайте образ с именем dummy.png.
    • Используйте то же место, что и SVG для ссылки.
    • Используйте те же размеры, что и связанное изображение в родительском SVG.
  2. Импортировать dummy.pngкак растровое изображение.
  3. Щелкните изображение правой кнопкой мыши.
  4. Выберите Свойства изображения .
  5. Установите URL -адрес для файла SVG (используйте относительный URL-адрес).

Графика будет автоматически обновляться каждый раз, когда обновляется ваш связанный SVG, но ее нельзя будет редактировать внутри основного SVG-файла.

В качестве альтернативы отобразите растровое изображение самого исходного SVG и замените его URL-адрес URL-адресом файла SVG.

Спасибо, я пытался использовать тег <image>, но inkscape преобразует связанный файл в растровое изображение с низким разрешением как для просмотра в Inkscape, так и для экспорта в другие форматы. Разве это не так для вас? Если да, не могли бы вы опубликовать полный пример тега изображения с путем svg внутри, который отображается в полном «разрешении»?
@cheflo, вы правы, связанный файл представляет собой растровое изображение. Я использовал эту функцию в ситуациях, когда мне не нужно было беспокоиться о масштабировании изображения и я не смотрел внимательно на то, что происходит. Виноват.

Когда вы импортируете векторный файл в inkscape, он появляется как группа векторных объектов. Таким образом, разрешение не является проблемой. Я часто делаю это для графиков из источника и python/matplotlib. Это легко проверить — нажмите на кривую на графике и выберите инструмент «Редактировать пути по узлу» (F2) — вы сможете редактировать узлы.

Автообновление было бы неплохо, но я не думаю, что это можно сделать как пользователь (и я включаю сюда простые расширения). Я только что попытался вручную взломать файл svg, чтобы связать pdf (или svg) вместо png, и новый файл не может быть найден (я получаю изображение-заполнитель, содержащее «☒ Связанное изображение не найдено»).

Если у вас есть растры, встроенные в ваши исходные файлы svg/pdf, я не уверен, что произойдет с разрешением. Единственный раз, когда мне приходилось иметь дело с этим, изображения (вырезанные из фотографий с микроскопа) были настолько низкого разрешения, что они все равно были увеличены, и я не потерял больше. Я сомневаюсь, что у вас все равно есть проблемы со встроенными растрами в графиках Python.

Спасибо, я также столкнулся с ошибкой «Связанное изображение не найдено» с PDF-файлами. Я надеялся, что есть решение, которое я наблюдал, поскольку оно кажется технически возможным, учитывая, что в Illustrator существует функциональная возможность. Я предполагаю, что формат .ai может быть более подходящим для таких вещей (хотя я видел сообщения о svgs в svgs для дизайна веб-страницы).