【问题标题】:SVG drawing application with vector export带有矢量导出功能的 SVG 绘图应用程序
【发布时间】:2023-03-11 10:41:01
【问题描述】:

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

但是,此应用程序还需要跨浏览器兼容。我已经浏览了一段时间,并看到了一些可用的解决方案。我发现其他 RaphaelJS 和 Google 的 SVGWeb 用于使用 SVG。

现在要将这些 SVG 文件转换为 PDF,我不确定 Batik 是否会为我提供我正在寻找的东西。

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

【问题讨论】:

    标签: javascript pdf vector svg raphael


    【解决方案1】:

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

    【讨论】:

    • 内部 PDF 转换?我(几年前)的印象是它需要 iText 的 PdfGraphics2D 类。
    【解决方案2】:

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

    至于 PDF,我认为如果光栅图像嵌入在 SVG 本身中,则光栅图像是嵌入的,或者如果 SVG 是链接的,则它们是链接的。这很容易通过转到 Extensions > Images > 选择 Embed Images 或 Extract Images 来实现。

    【讨论】:

    • 我想你误解了我的意思。我必须创建绘图应用程序,而不是使用它。
    • 您不能在 PDF 中“链接”图像。给定 PDF 使用的所有内容(非嵌入字体有一定程度的例外)都必须在 PDF 中。
    【解决方案3】:

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

    我自己用过蜡染。与 iText 结合起来有点笨拙(涉及大量代码),但非常有用。唯一真正困扰我的是它不会将文本绘制为文本...... Batik 坚持将其绘制为路径。自从我一两年前开始使用它以来,他们可能已经克服了这个问题。但这有点破坏交易(巨大的 pdf 膨胀),所以我们最终单独渲染了我们的文本:PITA、潜在的 z 顺序问题(我们从来没有遇到过),以及一些没有解决的微妙的内部布局问题直到后来。

    Batik 支持脚本、动画和各种其他在 SVG->PDF 转换范围内并不重要的东西。至少还有一个其他 Java SVG 库更紧凑(不是功能丰富......半空/半满),尽管我现在无法记住这个名字。这个名字可能在一年前出现在 iText 邮件列表中?具体不记得了。很久以前,在我让蜡染工作之后。嗯嗯。

    【讨论】:

      【解决方案4】:

      您可以使用 Processing 编写一个 java 小程序。它是跨浏览器的,可以export to pdf。位图图像将保留嵌入在 pdf 中的位图图像。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-23
        • 1970-01-01
        • 1970-01-01
        • 2011-02-14
        • 2022-08-19
        • 2012-04-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多