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

需要提前安装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:\images\a.png

Success Export  png  ->  d:\images\db2.png

Success Export  png  ->  d:\images\db3.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

以上是 Python实现批量把SVG格式转成png、pdf格式的代码分享 的全部内容, 来源链接: utcz.com/z/337806.html

回到顶部