Админ

суббота, 25 марта 2017 г.

Вставка векторного изображения в документ Google

|
Обычно на вопрос «можно ли вставить векторный рисунок (например, SVG) в документ Google Docs» отвечают «нет» или «только если преобразовать его в JPEG / PNG». К счастью, это не так. К сожалению, это не так просто.

Оглавление

Вводные замечания, или Нормальные герои всегда идут в обход!

Ещё в 2010 году разработчики Google Drive разрешили импортировать векторные изображения в формате WMF (метафайлы Windows) и преобразовывать их в собственный формат векторных изображений Google. В настоящее время эта возможность то ли плохо работает, то ли вовсе удалена из облачного офиса: я несколько раз пытался конвертировать файлы, но ничего не выходило. На форуме Google написано, что нужно загрузить файл WMF и подождать несколько минут, но лично у меня не вышло преобразовать таким образом даже простенький рисунок из одного лишь прямоугольника после полутора часов ожидания.

Пользователь Bram Alkema всё на том же форуме предложил обходной путь, использующий в качестве промежуточного звена Microsoft PowerPoint. Я решил исследовать этот вопрос и заодно проверить, можно ли заменить MS PowerPoint кроссплатформенным и свободным аналогом. Так получилось два способа вставки рисунков: при помощи Microsoft Office и при помощи свободного пакета LibreOffice / OpenOffice. Я не знаю, сработает ли этот способ с другими офисными пакетами (например, с облачным Microsoft Office), так что непонятно, годится ли он для пользователей операционных систем ChromeOS, Android и прочих. Боюсь, что нет.

Увы, по-настоящему сложные изображения (вроде знаменитого тигра) искажаются, хотя и не так заметно, как могло бы показаться. Все подробности ниже.

1. Подготовка файла с изображениями

Способ 1. Презентация Microsoft PowerPoint

Примечание. У меня установлена русская версия Microsoft Office 2013 с настройками панелей инструментов по умолчанию. В других версиях Office пункты меню и их расположение могут отличаться.

Если на компьютере установлен офисный пакет Microsoft Office, то алгоритм будет такой:
  1. Найти или создать файл в формате EMF или преобразовать из другого векторного формата (например, SVG) в этот при помощи любого векторного графического редактора или облачного сервиса (можно использовать формат WMF, но он примитивнее, поэтому часть информации при преобразовании может потеряться). В приложении я напишу, как конвертировать при помощи Inkscape.
  2. Удалить со страниц презентации все лишние блоки (заголовки, текст).
  3. Вставить изображение в новую пустую презентацию. Если изображений будет много, то можно их заготовить заранее, а потом вставить в отдельные слайды презентации.

  1. Преобразовать рисунок в формат рисунков Microsoft Office. Сделать это можно двумя способами: из контекстного меню (пункт «Изменение рисунка» — не путать с соседним пунктом «Изменить рисунок…»!) или при помощи панели инструментов «Формат», кнопка «Группировать», пункт меню «Разгруппировать».


  1. В обоих случаях PowerPoint предложит преобразовать картинку в формат Microsoft Office.

Примечание 1. Даже если вы выбрали пункт «Разгруппировать», объекты по-прежнему будут сгруппированы (да, вот такая логика).

Примечание 2. Если файл EMF / WMF не был подготовлен заранее, а был получен преобразованием из SVG, то иногда граница рисунка преобразуется в отдельный объект-прямоугольник без видимых границ и фона. Его следует удалить.

Примечание 3. Иногда преобразование не работает. Причина — файл изображения содержит какие-то инструкции, которые «не нравятся» PowerPoint. Об одном из таких случаев — когда вы сами создали файл EMF при помощи Inkscape — мы поговорим ниже, в приложении.

  1. Сохранить файл в формате PPTX.

Способ 2. Презентация LibreOffice Impress

Любители свободного программного обеспечения, как ни странно, иногда оказываются в выигрыше: в свободном офисном пакете всё делается проще (но не всегда качественнее).

Примечание. У меня установлена русская версия LibreOffice 5.2.6 с настройками панелей инструментов по умолчанию. В OpenOffice и других версиях LibreOffice пункты меню и их расположение могут отличаться.
  1. Найти или создать файл в векторном формате. В отличие от Microsoft Office, LibreOffice поддерживает разные векторные форматы, в том числе SVG. Более того, формат SVG даже является более предпочтительным, потому что файлы EMF / WMF иногда не совсем корректно считываются.
  1. Удалить со страниц презентации все лишние блоки (заголовки, текст).
  2. Вставить изображение в новую пустую презентацию. Если изображений будет много, то можно их заготовить заранее, а потом вставить в отдельные слайды презентации.
  1. Преобразовать изображение в собственный векторный формат при помощи контекстного меню «Преобразовать» — «В кривую» (вариант «В многоугольник» не годится — потом картинка может некорректно загрузиться в Google Drive). Никаких посторонних рамок здесь не появляется.

Примечание 1. Если Microsoft PowerPoint создаёт набор сгруппированных объектов, то LibreOffice сразу делает их раздельными.

Примечание 2. Увы, иногда SVG преобразуется хуже, чем EMF. Например, тигр при экспорте из SVG напрямую в конечном итоге изрядно деформируется.
  1. Сохранить файл в формате ODP.

2. Вставка изображений в документы Google

Подготовленный таким образом рисунок или набор рисунков внутри презентации нужно импортировать в презентацию Google Slides. Делается это так:
  1. В настройках Google Drive установить галочку «Преобразовывать загруженные файлы в формат Google».
  1. Загрузить файл PPTX или ODP в Google Drive, дождаться завершения преобразования и открыть полученную презентацию Google Slides.
  2. Всё, теперь можно копировать рисунки из презентации в любой документ. А ещё их можно редактировать средствами Google (менять границу и заливку объектов, перетаскивать, растягивать и т. д.). Менять форму объектов (редактировать многоугольники по точкам), увы, нельзя.

Сравнение разных способов экспорта изображений

Экспорт изображений, содержащих векторные примитивы

Если изображение содержит графические примитивы, которые существуют как отдельные объекты в Google Images (эллипсы, прямоугольники), то при экспорте через программу PowerPoint и формат EMF эти примитивы превращаются в такие же примитивы Google Images, а при экспорте средствами LibreOffice Impress они не распознаются как таковые.

В чём выражается такое распознавание? Во-первых, их можно полноценно редактировать, а не просто растягивать, как другие объекты. Во-вторых, эти примитивы можно использовать в качестве «якоря» для соединительной линии, см. голову человечка на рисунке ниже. Объекты сложной формы нельзя использовать в этом качестве.


При экспорте из LibreOffice Impress (вне зависимости от промежуточного формата: SVG или EMF) объекты не распознаются как примитивы, их нельзя редактировать или «зацеплять» за них соединительную линию.

Экспорт сложных изображений

На простых рисунках нет никакой разницы между экспортом картинок через Microsoft PowerPoint + EMF или LibreOffice Impress + SVG или EMF. На по-настоящему сложных (да, я опять о тигре, но проверял и на других) PowerPoint выигрывает. Сравните сами, я преобразовал одну и ту же картинку разными способами и загрузил презентацию в Google Drive (скриншоты именно из Google Drive, в самом Impress всё смотрится иначе):

1. Microsoft PowerPoint + EMF:


2. LibreOffice + EMF (внимание на кончики усов):


3. LibreOffice + SVG (искажение контуров, паразитные объекты):

Приложение. Подготовка файлов формата EMF при помощи Inkscape

Inkscape — кроссплатформенный свободный векторный редактор. Его «родным» форматом является SVG, поэтому я не буду рассказывать, как работать именно с этим форматом, но для экспорта в EMF придётся немного поломать голову над настройками экспорта.

Если выбрать в меню «Файл» — «Сохранить» («Сохранить как…») и выбрать формат EMF, то Inkscape предложит набор галочек-опций (у меня русская версия 0.91, в других версиях набор может отличаться).


К сожалению, выяснять их назначение придётся экспериментальным путём, но некоторые вещи очевидны заранее. Так, преобразовывать текст в кривые Безье есть смысл, если используются любые нестандартные шрифты (то есть практически любые, кроме Arial и Times New Roman) или если на рисунке есть текст, который размещён вдоль контуров. Опция «Convert dashed/dotted lines to single lines» необходима, когда в изображении есть пунктирные линии: изображение с такими линиями вставляется в PowerPoint, но не преобразуется в формат рисунка (никаких сообщений об ошибках: просто преобразование не даёт никакого эффекта). Галочки, относящиеся к градиентам, нужно использовать, когда эти градиенты есть, и так далее.

Комментариев нет:

Отправить комментарий

К началу