2013-05-23 5 views
1

Я создаю диаграмму, используя raphael.js. В моей диаграмме есть прямоугольники, которые связаны с помощью стрелок. Я экспортирую этот svg, используя Raphael Export, а затем преобразовывая эту строку svg в pdf с помощью батика. Но в pdf я не получаю наконечники стрелок на разъемах, соединяющих различные прямоугольники в формате pdf. Я использую raphael graffle для создания соединения между прямоугольниками. Мне действительно нужны эти стрелки в pdf. Пожалуйста, дайте мне знать, что может быть проблемой.Рафаэльные наконечники стрелок не показаны в pdf

Также добавление тега defs статически и замена атрибута со стрелкой на маркер-конец-url, управляя строкой svg, не выглядит хорошим решением. Есть ли другой способ сделать это.?

+0

возможно показать код DEMO в jsfiddle? – Brian

+0

Извините за поздний ответ. Вот ссылка на скрипку. http://jsfiddle.net/nHEsE/10/. Я забыл упомянуть, что метод соединений graffle был изменен, чтобы показать стрелки. Я нашел модификацию самого stackoverflow. –

ответ

1

Я думаю, что нашел проблему. Кажется, проблема связана с тем, что тег defs (содержащий идентификаторы маркера) raphael не включен в экспортированный svg, а атрибут маркер-конец-url отсутствует в элементах пути, из-за которых стрелки не отображаются , В элементах пути rapahel, а при экспорте вместо идентификатора маркера добавляется еще один атрибут, который является «стрелкой»: «classic-midium-midium». Поэтому, когда я добавил тег defs raphael в свой сгенерированный svg и заменил атрибут со стрелкой атрибутом маркер-конец-url, указав требуемое значение, появившиеся стрелки. Но теперь проблема заключается в позиционировании стрелочных головок. В экспортированных svg координаты x и y горизонтальных и вертикальных стрелок немного больше, что приводит к пересечению стрелок с объектом (прямоугольники в моем случае), который выглядит не очень хорошо. Но да, теперь я собираюсь с ним. У меня есть изменение raphael.export.js. Таким образом, для любого, кто ищет решения должны добавить следующие 2 строки кода в raphael.export.js

1.In R.fn.toSVG функция добавить следующий после инициализации переменной в SVG номер строки 217 You have to append defs tag of raphael to svg variable here. Not able to post here.

2.In переменного сериализатора где тег для пути creatd добавить следующую строку под номер строки 199 initial['marker-end'] = "url(#raphael-marker-endclassic33)";

Благодаря