客户发了一个文本规范过来,是doc文档,我们要转成swf,然后用flexpaper展示在网页上。由于在转换的过程中,文件目录包含%等特殊符号,导致pdf转swf文件失败。因此想出一个解决方案,就是把路径包含%的文件,移到一个临时目录再转swf,最后把swf放回源目录。小工具采用python实现:

import os,shutil


def Search(rootDir):
    for lists in os.listdir(rootDir):
        path = os.path.join(rootDir, lists)
        if ".pdf" in path:
            filename = lists.replace(".pdf", ".swf")
            swfpath = os.path.join(rootDir, filename)
            if not os.path.exists(swfpath):#过滤出来没转成功的pdf文件
                print(path+"\n")
                tempPdf = "G:\\temp\\"+lists
                tempSwf = "G:\\temp\\"+filename
                shutil.copyfile(path,tempPdf)
                convert(tempPdf,tempSwf)
                shutil.copyfile(tempSwf,swfpath)

        if os.path.isdir(path):
            Search(path)


def convert(pdfpath,swfpath):
    cmd =   "D:/raymon/raymoncms/pdf2swf.exe -o " + swfpath + " -s flashversion=9 " + pdfpath + ""
    return_code = os.system(cmd)
    print(return_code)

Search(r'G:\wordpdf\市局涉税表单填写范本(2017年4月)')

#convert("G:/temp/A03051《企业所得税优惠事项备案表》.pdf","G:/temp/A03051《企业所得税优惠事项备案表》.swf")