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


Posted in Python onAugust 21, 2014

需要提前安装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 相关文章推荐
使用Python标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
利用Anaconda完美解决Python 2与python 3的共存问题
May 25 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
Python实现的购物车功能示例
Feb 11 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
python线程中同步锁详解
Apr 27 Python
解决pycharm界面不能显示中文的问题
May 23 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
python支付宝支付示例详解
Aug 22 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
python生成日历实例解析
Aug 21 #Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 #Python
Python中除法使用的注意事项
Aug 21 #Python
Python中dictionary items()系列函数的用法实例
Aug 21 #Python
Python 不同对象比较大小示例探讨
Aug 21 #Python
python字符串连接方式汇总
Aug 21 #Python
零基础学Python(一)Python环境安装
Aug 20 #Python
You might like
php常用hash加密函数
2014/11/22 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
基于python中__add__函数的用法
2019/11/25 Python
python实现打砖块游戏
2020/02/25 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
幼儿园老师寄语
2014/04/03 职场文书
有关环保的标语
2014/06/13 职场文书
公务员考察材料
2014/12/23 职场文书
医生个人年终总结
2015/02/28 职场文书
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers