Javascript 矢量输出的SVG绘图应用

Javascript 矢量输出的SVG绘图应用,javascript,pdf,vector,svg,raphael,Javascript,Pdf,Vector,Svg,Raphael,我想创建一个绘图应用程序,我可以在画布上放置文本和图像。这些元素也需要交互操作。最终,生成的画布必须导出为基于矢量的PDF。SVG是这一功能的一个很好的竞争者 但是,此应用程序还需要与交叉浏览器兼容。我已经浏览了一段时间,看到了一些可用的解决方案。我在其他人和谷歌中找到了使用SVG的方法 现在,对于将这些SVG文件转换为PDF,我不确定例如是否能提供我所需要的内容 另外,在将SVG转换为PDF时如何处理位图图像?Batik可以将SVG转换为PDF,Inkscape或Adobe Illustrat

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

但是,此应用程序还需要与交叉浏览器兼容。我已经浏览了一段时间,看到了一些可用的解决方案。我在其他人和谷歌中找到了使用SVG的方法

现在,对于将这些SVG文件转换为PDF,我不确定例如是否能提供我所需要的内容


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

Batik可以将SVG转换为PDF,Inkscape或Adobe Illustrator也可以。我认为Inkscape将是您的最佳选择,它实现的形状大多遵循SVG 1.1(使用它自己的一些属性,如果将其保存为普通SVG,您可以将其删除)。对我来说,即使将其保存为Inkscape SVG,它在浏览器中也能显示良好,即使有模糊,但在Internet Explorer中不起作用。对于这一点,除了使用外部工具外,没有其他解决方案,例如(如您已经发现的)不幸的是,不同浏览器对SVG的javascript支持可能有所不同,并且没有办法解决这个问题


至于PDF,我认为如果光栅图像嵌入到SVG本身中,它们就会被嵌入,如果SVG被链接,它们就会被链接。通过进入“扩展>图像>选择嵌入图像或提取图像”可以很容易地做到这一点。

PDF中的图像必须是PDF的一部分。它们可以使用任意数量的压缩技术(jpeg、fax、jbig2、zip、gif等)、每种颜色的各种位、每像素的各种颜色等等……但像素必须在该PDF中定义

我自己也用过蜡染。与iText结合使用有点笨重(涉及的代码数量惊人地多),但非常实用。唯一真正困扰我的是它不会将文本绘制为文本…Batik坚持将其绘制为路径。自从我一两年前开始使用它以来,他们可能已经克服了这一点。但这有点破坏了交易(巨大的pdf膨胀),所以我们最终分别呈现了文本:PITA,潜在的z顺序问题(这对我们来说从未出现过),加上一些直到后来才出现的微妙的内部布局问题


Batik支持脚本、动画和其他各种在SVG->PDF转换范围内并不重要的东西。至少还有一个Java SVG库更紧凑(功能不丰富…半空/半满),虽然我一辈子都记不起这个名字。这个名字可能是一年前出现在iText邮件列表上的?记不清了。很久以前,在我开始蜡染工作后。啊,好吧。

你可以编写一个带有处理的java小程序。它是跨浏览器的,可以。位图图像将仍然是嵌入其中的位图图像pdf。

我想你误解了我的意思。我必须创建绘图应用程序,而不是使用它。你不能在pdf中“链接”图像。给定pdf使用的所有内容(未嵌入字体除外)都必须在pdf中。内部pdf转换?我的印象是(几年前)它需要iText的PdfGraphics2D类。