视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python实现批量把SVG格式转成png、pdf格式的代码分享
2020-11-27 14:30:45 责编:小采
文档

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

Code:

#! encoding:UTF-8
import cairosvg
import os
 
loop = True
while loop:
 svgDir = raw_input("请输入SVG文件目录")
 if os.path.exists(svgDir) and os.path.isdir(svgDir):
 loop = False
 else:
 print "错误:您输入的SVG文件目录不存在或者不是一个有效的目录,请重新输入"
 
loop = True
while 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 = True
while 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:imagesa.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

下载本文
显示全文
专题