带矢量导出的SVG绘图应用程序

时间:2010-12-24 10:33:19

标签: javascript pdf vector svg raphael

我想创建一个绘图应用程序,我可以在画布上放置文本和图像。这些元素也需要以交互方式操纵。最终,必须将生成的画布导出为基于矢量的PDF。这个功能的一个很好的竞争者是SVG。

但是,此应用程序还需要兼容crossbrowser。我已经浏览了一段时间,并且已经看到了几种可用的解决方案。我找到了RaphaelJS和Google的SVGWeb用于处理SVG的问题。

现在将这些SVG文件转换为PDF我不确定例如Batik是否能为我提供我想要的内容。

另外,在将SVG转换为PDF时如何处理位图图像?

4 个答案:

答案 0 :(得分:0)

Batik可以将svg转换为pdf,Inkscape或Adobe Illustrator也可以转换为AFAIK。

答案 1 :(得分:0)

我认为Inkscape在这里是你最好的选择,它主要坚持SVG 1.1它所实现的形状(使用它自己的一些属性,如果你把它保存为普通的SVG就可以摆脱它)。对我来说,即使我保存为Inkscape SVG,它在浏览器中也能很好地显示,即使它有模糊,但它在Internet Explorer中不起作用。为此,除了使用外部工具(如您已经发现的)SVGWeb之外,没有其他解决方案。不幸的是,对浏览器的javascript支持可能会有所不同,并且没有办法解决这个问题。

对于PDF,我认为如果光栅图像嵌入SVG本身,则嵌入光栅图像,或者如果SVG链接,则嵌入光栅图像。转到Extensions>这很容易做到。图像>选择嵌入图像或提取图像。

答案 2 :(得分:0)

PDF中的图像必须是PDF的一部分。他们可以使用任意数量的压缩技术(jpeg,传真,jbig2,zip,gif,其他几种),每种颜色的各种位,每个像素的各种颜色等等......但必须在该PDF中定义像素。

我自己用过Batik。与iText(令人惊讶的大量代码涉及)相结合,有点笨重,但非常有用。唯一真正让我烦恼的是,它不会将文字作为文字绘制...... Batik坚持将其绘制为路径。自从我一两年前开始使用它们以来,他们可能已经克服了这个问题。但这是一个交易破坏者(巨大的pdf膨胀)所以我们最终分别渲染我们的文本:PITA,潜在的z顺序问题(从来没有出现过我们),加上一些微妙的内部布局问题没有转向直到晚些时候。

Batik支持脚本,动画以及在SVG-> PDF转换范围内无关紧要的各种其他事物。至少有一个其他的Java SVG库更加紧凑(不像功能丰富......半空/半满),虽然我不能为我的生活记住这个名字。这个名字可能出现在一年前的iText邮件列表中?不记得确切。很久以前,我得到了Batik的工作。好吧。

答案 3 :(得分:0)

您可以使用Processing对Java applet进行编程。这是跨浏览器,可以export to pdf。位图图像将保留嵌入在pdf中的位图图像。