Pdf到svg并不完美

Pdf到svg并不完美,svg,imagemagick,ghostscript,imagemagick-convert,inkscape,Svg,Imagemagick,Ghostscript,Imagemagick Convert,Inkscape,我尝试了几乎所有的库将pdf转换为svg,下面是它们的结果 gs或ghostscript和imagemagick:大小乘以100 pdf2svg和inkscape:pdf顶部的图像一点也不准确这里是pdf和svg的链接 PDF: SVG: 如果我遗漏了一些需要做的事情,请建议我。Ghostscript SVG输出设备已被严重弃用,不再受支持(或者确实内置在标准Ghostscript二进制文件中) 无论如何,您需要知道PDF是一个非常丰富的图形模型,使用SVG图形模型复制PDF的每一个可能的细微差

我尝试了几乎所有的库将pdf转换为svg,下面是它们的结果

  • gs或ghostscript和imagemagick:大小乘以100
  • pdf2svg和inkscape:pdf顶部的图像一点也不准确这里是pdf和svg的链接
  • PDF: SVG:


    如果我遗漏了一些需要做的事情,请建议我。

    Ghostscript SVG输出设备已被严重弃用,不再受支持(或者确实内置在标准Ghostscript二进制文件中)

    无论如何,您需要知道PDF是一个非常丰富的图形模型,使用SVG图形模型复制PDF的每一个可能的细微差别是不可能的,特别是字体是一个问题,但几乎任何类型的透明度也是如此。当这种情况发生时,Ghostscript将把PDF渲染成图像,并将其插入SVG文件中。几乎可以肯定,这就是为什么SVG文件比PDF文件大得多。您应该能够使用-r开关来控制渲染的分辨率,从而可以在质量和大小之间进行权衡


    即使整个文件没有转换成位图,也有可能是大部分文件都转换成了位图,或者SVG中的位图压缩不如PDF好(或者GS没有充分利用所有的可能性)。FWIW未压缩的PDF文件运行到>4MB。

    我们也可以在svg上使用-r吗?我以为它只用于pdf操作。我尝试使用-r选项,如果值为10,它将返回51 MB的svg。-r在Ghostscript需要渲染内容时使用,它(显然)适用于所有渲染设备,如TIFF或PNG。但当高级向量设备需要渲染某些内容时,也会使用它,它们将使用指定的分辨率或默认分辨率(对于pdfwrite,为720dpi)。我无法解释为什么SVG设备会生成一个大文件,该设备是不受支持的。那么您有没有其他方法可以建议这样做,因为我已经尝试过Pdf、html和Png,这些都不适合Android设备,我发现唯一有效的方法是SVG。我尝试过IDR库将PDF转换为SVG,它工作得很好,但它是一个付费库。我只会坚持使用PDF,Android上有很多PDF阅读器