Python实现批量把SVG格式转成png、pdf格式的代码分享

需要提前安装cairosvg模块,下载地址http://cairosvg.org/download/

Code:

#! encoding:UTF-8import cairosvgimport os loop = Truewhile loop:    svgDir = raw_input("请输入SVG文件目录")    if os.path.exists(svgDir) and os.path.isdir(svgDir):        loop = False    else:        print "错误:您输入的SVG文件目录不存在或者不是一个有效的目录,请重新输入" loop = Truewhile loop:    exportDir = raw_input("请输入导出目录")    if os.path.exists(exportDir):        loop = False    else:        print "错误:您输入的导出目录[" , exportDir  , "] 不存在,是否要创建这个目录?"        loops = True             while loops:            msg = ""            cmd = raw_input("创建 (Y) 重新 (R)")            if cmd.upper() == "R":                loops = False            elif cmd.upper() == "Y":                os.makedirs(exportDir, True)                if os.path.exists(exportDir):                    loop = False                    loops = False                else:                    print "创建目录失败[",exportDir,"], 请重新输入"            else:                print "找不到您输入的命令,请重新输入"              cate = ("png", "pdf")print "导出类型:"for i in cate:    print i     loop = Truewhile loop:    exportFormat = raw_input("请输入导出类型")    if exportFormat.lower() in cate:        loop = False    else:        print "您输入的类型不存在,请重新输入" def export(fromDir, targetDir, exportType):    print "开始执行转换命令..."    files = os.listdir(fromDir)    num = 0    for fileName in files:        path = os.path.join(fromDir,fileName)        if os.path.isfile(path) and fileName[-3:] == "svg":            num += 1            fileHandle = open(path)            svg = fileHandle.read()            fileHandle.close()            exportPath = os.path.join(targetDir, fileName[:-3] + exportType)            exportFileHandle = open(exportPath,'w')                         if exportType == "png":                cairosvg.svg2png(bytestring=svg, write_to=exportPath)            elif exportType == "pdf":                cairosvg.svg2pdf(bytestring=svg, write_to=exportPath)                             exportFileHandle.close()            print "Success Export ", exportType, " -> " , exportPath         print "已导出 ", num, "个文件"export(svgDir, exportDir, exportFormat)

登录后复制

使用:

复制代码 代码如下:
请输入SVG文件目录d:svg
请输入导出目录d:images
错误:您输入的导出目录[ d:images ] 不存在,是否要创建这个目录?
创建 (Y) 重新 (R)Y
导出类型:
png
pdf
请输入导出类型png
开始执行转换命令…
Success Export  png  ->  d:images.png
Success Export  png  ->  d:imagesdb2.png
Success Export  png  ->  d:imagesdb3.png
已导出  3 个文件

复制代码 代码如下:
D:>tree svg /F
Folder PATH listing
Volume serial number is 4603-09B2
D:SVG
    a.svg
    db2.svg
    db3.svg
 
No subfolders exist
 
 
D:>tree images /F
Folder PATH listing
Volume serial number is 4603-09B2
D:IMAGES
    a.png
    db2.png
    db3.png
 
No subfolders exist

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2290705.html

(0)
上一篇 2025年2月28日 00:29:56
下一篇 2025年2月24日 22:12:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论