LINUX.ORG.RU

inkscape


0

0

Делаю простую картинку в inkscape http://s51.radikal.ru/i134/1009/d9/a5b0f21d99ab.jpg
1. Простой текст
2. Текст вписанный в контур

Обычный текст виден, а вот вписанный нет http://s52.radikal.ru/i135/1009/58/aef2a3d86444.jpg

Задача перевести SVG в PNG. Но ImageMagic при конвертировании тоже «теряет» этот текст. Конвертация при помощи inkscape из командной строки работает, но inkscape использовать не желательно, т.к. не могу его перетащить на хостинг, ведь он тащит за собою кучу библиотек и просто бинарник кинуть не получается.

Что сделать в данной ситуации?


ps. вот тестовый файл http://zalil.ru/29686064

У тебя один текст «связанный заверстанный текст», а другой просто «текст». Просто «текст» нормально отображается, а связанный — нет.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

Ох, ты об этом и написал. А я плохо прочел и подумал, что текст на плашке не конвертируется. Надо подумать.

Zubok ★★★★★ ()

Мне кажется, что imagemagick (или то, чем он пользуется для просмотра SVG) не умеет элемент flowRoot (плавающий текст) показывать. Надо посмотреть, в каком стандарте SVG он появился. Насколько я понял, он предложен в SVG 1.2, а вот просмотрщик может быть только SVG 1.1 compilant. Проверь.

Zubok ★★★★★ ()

>Что сделать в данной ситуации?

Сохранить в PDF или EPS/PS, а потом в PNG? Как вариант.

Zubok ★★★★★ ()
Ответ на: комментарий от files32

>Да, похоже эту конструкцию понимает только inkscape а остальные не замечают ее.

Угу, Firefox, GIMP тоже не видят.

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

http://www.imagemagick.org/script/formats.php?ImageMagick=fpliqfipcn5drrop1e2...

SVG   RW   Scalable Vector Graphics   Requires libxml2 and freetype-2. Note that SVG is a complex specification and support for the specification in ImageMagick is not complete.

Так и написали что не полностью поддерживается. Вопрос тогда - что будет поддерживать полностью? Попробовал еще одну софтину rsvg - тоже не кажет этот текст.

files32 ()
Ответ на: комментарий от Zubok

Дело в том, что есть svg и нужно автоматом переконвертить в png. На собственном серваке с правами root поставил inkscape и конвертил, а вот нужно тоже самое сделать на шаред хостинге, где не поставишь inkscape.

Пытался его в cgi-bin воткнуть и там запускать, но он 94 библиотеки линкует. Я упорный и скопировал их туда же в папку, inkscape при запуске перестал ругаться на отсутствие библиотек, но стал писать «Segmentation fault». На этом я эксперимент забросил. Сижу и думаю что бы еще такое придумать...

files32 ()
Ответ на: комментарий от files32

Есть способ обхода, но через inkscape. Если выделить плавающий текст, а потом нажать меню Текст->Преобразовать в текст, то он становится, понятное дело, виден. Один из вариантов (но я не уверен в успехе) — это взять очень простенький SVG с плавающим текстом и преобразовать его в обычный текст, глянуть на изменения в SVG. Если измнения чисто текстуальные (т.е. без пересчетов координат и пр.), то можно просто скриптом сделать нужные замены. Что тут применять — дело уже десятое: XSLT, Python, Perl и т. д.

Zubok ★★★★★ ()
Ответ на: комментарий от files32

Дело в том, что есть svg и нужно автоматом переконвертить в png. На собственном серваке с правами root поставил inkscape и конвертил, а вот нужно тоже самое сделать на шаред хостинге, где не поставишь inkscape.

Может быть, при подготовке документа использовать плавающий текст, а на сервер класть файл SVG с уже преобразованным плавающим текстом в обычный текст? Кстати, этот приемчик с преобразованием описан.

When SVG is used as image in a webbrowser, the text is rendered as black stripes (Firefox) or is not visible (Opera). Change the text type from 'flowroot' to 'text' to solve this.

Do the following:

   1. Select the Text object
   2. Menu Text > Convert to Text
   3. Menu File > Save

Tip: When a number of text objects must be changed, use the Shift key for selecting multiple objects and convert them together with 'Convert to Text'.

From the outside you cannot see if a text is converted to regular text, and the text is still editable with the 'Create and edit text objects' tool. Use 'Object Properties' in the pop-up menu below the right mouse button or menu Object > Object Properties to see the difference. When the text is converted to you see 'text...' as ID for the object, the original text object has 'flowroot...' as ID. This corresponds with <text> and <flowRoot> elements in the SVG source respectively.
Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

Нужен именно плавающий текст. Поясню, есть шаблоны на svg где динамически этот текст меняется и плавающий текст остается в рамках того контура куда он вписан, а если использовать простой текст, то при его изменении он вылазит за рамки... может путано объяснил.

files32 ()
Ответ на: комментарий от RCV

Я проверил: и в том, и в другом случае flowroot. Текст не виден.

Zubok ★★★★★ ()
Ответ на: комментарий от files32

может путано объяснил.

Да нет, я понял.

Посмотри на это: http://xmlgraphics.apache.org/batik/index.html , но это Java.

Написано, что плавающий текст поддерживается в версии в SVN.

А также глянь на то, чем пользуется ImageMagick для отрисовки SVG. Может быть, в upstream уже запилили поддержку и можно будет как-нибудь собрать это дело?

Zubok ★★★★★ ()
Ответ на: комментарий от Zubok

Последняя версия этого батика не показывает плавающий текст. В репозитории несобраный батик и как эту яву собрать в кучу я незнаю. Но в любом случае это дохлое решение, т.к. если я яву на шареде буду запускать для этого дела, то он ляжет.

files32 ()

Вообщем решил так: конвертирую через inkscape в pdf из консоли без открытия GUI.

files32 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.