среда, июня 10, 2009

Inkscape + PDF: досужие мысли

Переведя за последний год основные офисные агитматериалы (за исключением только годового отчёта: очень уж много таблиц) в Inkscapе, страшно страдаю от неудобного экспорта в PDF.

Суть проблемы: их две, сути:

1) я использую слои как замену страниц (документы Insckape пока что одностраничные); соответственно, экспорт страниц надо делать поштучно;

2) Inkscape не экспортирует в PDF, а сохраняет в него. Текущий файл переименовывается в сохранённый PDF. Приходится постоянно держать этот факт в голове и при экспортах-правках-экспортах не забывать сохранять файл как оригинальный SVG. А ведь не случайно и в InDesign, и в Corel DRAW экспорт PDF удостоился отдельного пункта в меню Файл: шибкий импакт на юзабилити-с.

Типичная палитра слоёв моего псевдо-многостраничного документа:



Я даже пробовал, грешным делом, взяться за Питон или приспособить php-cli, чтобы написать PDF-расширение Моей Мечты, которое:

а) живёт отдельным пунктом меню или отдельной кнопкой на тулбаре и

б) умеет разом сохранять слои в раздельные файлы PDF, при этом либо:

б.1) использует самый нижний слой как мастер-страницу (подкладывает во все экспортируемые PDF), либо

б.2) использует каждый слой как мастер-страницу для его вложенных слоёв, то есть сохраняет в раздельные PDF все слои первого уровня с автоматическим включением вложенных слоёв.

А в идеале нужна возможность и б.1, и б.2: я частенько использую вложенные слои для хранения одних и тех же элементов в векторном и растровом виде: без растровой копии не обойтись при экспорте в PDF фильтрованных, размытых или маскированных элементов.

Дело за малым: сесть да написать. Но не хватает квалификации. По идее, всё очень просто: задача сводится к манипуляциям деревом XML рабочего файла. Но с XML даже в PHP мне работать толком не доводилось (а его соответствующие функции для меня такой мрак, что я написал свои: уродливо, но хотя бы понятно).

Дельный совет использовать для этих задач более уместный Scribus пока что отклоняется: во-первых, сил нет терпеть его тормоза и глюки, пусть сперва заматереет; во-вторых, и это главное, база документов за много лет — обширна, документы самые разнородные, но всё имеется в PDF в обязательном порядке. Умеет Scribus открывать документы PDF как свои собственные? То-то и оно...

3 комментария:

prokoudine комментирует...

1) я использую слои как замену страниц (документы Insckape пока что одностраничные); соответственно, экспорт страниц надо делать поштучно;

А слабо пользоваться http://projects.abourget.net/inkscapeslide/ ? :)

2) Inkscape не экспортирует в PDF, а сохраняет в него. Текущий файл переименовывается в сохранённый PDF. Приходится постоянно держать этот факт в голове и при экспортах-правках-экспортах не забывать сохранять файл как оригинальный SVG. А ведь не случайно и в InDesign, и в Corel DRAW экспорт PDF удостоился отдельного пункта в меню Файл: шибкий импакт на юзабилити-с.

Файл - Сохранить как копию...

Дельный совет использовать для этих задач более уместный Scribus пока что отклоняется: во-первых, сил нет терпеть его тормоза и глюки, пусть сперва заматереет;

Дельный совет - пользоваться 1.3.5, пуcть даже rc2 :) Он существенно быстрее.

Умеет Scribus открывать документы PDF как свои собственные? То-то и оно...

Вообще говоря, он это умеет. Только не очень хорошо, поэтому функция отключена.

prokoudine комментирует...

Кстати, насчет отключенности я уже не уверен. Возможно, Scribus на этой машине просто собран без поддержка podofo.

Сергей комментирует...

1) А слабо пользоваться http://projects.abourget.net/inkscapeslide/ ? :)

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

2) Файл - Сохранить как копию...

Натурально, если бог хочет приколоться, он лишает разума... :-D

3) В том и дело, что Scribus "в принципе умеет" многое :-) Я какое-то время делал работу параллельно в нём и в Inkscape, пока не понял, что второй вариант даёт гарантированный результат, а первый - гарантированную борьбу с глюками, так что дадим команде Scribus ещё годик на работу, а там уж посмотрим...

Поиск по этому блогу