858983646 发表于 2024-10-19 14:12

Python怎么把svg转换成pdf,并且还保留矢量图属性

用了magemagick,结果输出的是像素的pdf,放大就不行了
求教有没有简单点的,依赖少一点的方法转换啊

LW404 发表于 2024-10-19 14:24

用 inkscapehttps://inkscape.org/release/inkscape-1.4/

858983646 发表于 2024-10-19 15:33

LW404 发表于 2024-10-19 14:24
用 inkscapehttps://inkscape.org/release/inkscape-1.4/

100多兆安装包,体积略大

小阿林 发表于 2024-10-19 15:49

转成PDF就已经没法保留矢量图的属性了

858983646 发表于 2024-10-19 15:51

小阿林 发表于 2024-10-19 15:49
转成PDF就已经没法保留矢量图的属性了

试了下inkscape就可以的,只是软件太大了

lyzxx 发表于 2024-10-19 18:04

from svglib.svglib import svg2rlg
from reportlab.graphics import renderPDF

def svg_to_pdf(svg_file_path, pdf_file_path):
    drawing = svg2rlg(svg_file_path)
    renderPDF.drawToFile(drawing, pdf_file_path)

# 使用示例
svg_path = "your_svg_file.svg"
pdf_path = "output.pdf"
svg_to_pdf(svg_path, pdf_path)


这种方法只依赖于reportlab和svglib两个库,相对来说比较简单且能较好地保留矢量图属性。在转换过程中,svglib将 SVG 图像转换为reportlab可处理的图形对象,然后reportlab将其渲染为 PDF 文件,确保了矢量图属性得以保留,即使放大也不会出现像素化的问题。

858983646 发表于 2024-10-19 20:42

lyzxx 发表于 2024-10-19 18:04
from svglib.svglib import svg2rlg
from reportlab.graphics import renderPDF ...

谢谢,我刚才也在GitHub找到了这个,可以使用

zx360717966 发表于 2024-10-20 01:04

学习了!真厉害!

wj21 发表于 2024-10-20 08:33

lyzxx 发表于 2024-10-19 18:04
from svglib.svglib import svg2rlg
from reportlab.graphics import renderPDF ...

学习了,还有这样的方法

luojineng 发表于 2024-10-20 12:08

小阿林 发表于 2024-10-19 15:49
转成PDF就已经没法保留矢量图的属性了

可以的。
页: [1] 2
查看完整版本: Python怎么把svg转换成pdf,并且还保留矢量图属性