拉斐尔箭头没有以PDF格式显示

时间:2013-05-23 03:58:29

标签: raphael batik export-to-pdf

我正在使用raphael.js创建一个图表。在我的图表中有矩形,使用箭头连接。我使用Raphael Export导出此svg,然后使用batik将此svg字符串转换为pdf。但在pdf中,我没有在连接pdf中各种矩形的连接器上获得箭头。我正在使用raphael graffle来创建矩形之间的连接。 我真的需要pdf中的那些箭头。请让我知道可能是什么问题。

另外静态添加defs标签并通过操作svg字符串用marker-end-url替换arrow-head属性看起来不是一个好的解决方案。还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

我想我已经找到了这个问题。 看起来问题是raphael的defs标签(包含标记id)不包含在导出的svg中,并且path-end-url属性不存在于路径元素中,因为没有显示箭头。 在rapahel的路径元素中,在导出时,不是标记id,而是添加另一个属性“arrow-end”:“classic-midium-midium”。因此,当我将raphael的defs标签添加到我生成的svg中并使用marker-end-url属性替换arrow-end属性时,通过给出所需的值,箭头出现了。 但现在问题在于箭头的定位。在导出的svg中,水平和垂直箭头的x和y坐标略微更多,这导致箭头与对象的交叉(在我的情况下为矩形),这看起来不太好。但现在是的,我将继续它。我修改了raphael.export.js。因此,任何寻找解决方案的人都必须在raphael.export.js中添加以下两行代码

1.在R.fn.toSVG函数中,在第217行初始化svg变量后添加以下内容 You have to append defs tag of raphael to svg variable here. Not able to post here.

2.在序列化程序变量中,路径标记为creatd,在第199行添加以下行 initial['marker-end'] = "url(#raphael-marker-endclassic33)";

由于