zoukankan      html  css  js  c++  java
  • 使用python调用wps v9转换office文件到pdf

    #!/usr/bin/python2.6
    # -*- coding: utf-8 -*-
    # pip install timeout-decorator
    
    import os
    import win32com.client
    
    
    # wps使用的是wps2016版本
    # 转换 Word文件档到pdf
    def ConvertDocToPdf(src, dst):
        if not os.path.exists(src):
            print(src + "不存在,无法继续!")
            return False
        os.system('taskkill /im wps.exe')
        # 如果文件存在就删除
        if os.path.exists(dst):
            os.remove(dst)
        o = win32com.client.Dispatch("Kwps.Application")
        o.Visible = False
        doc = o.Documents.Open(src);
        doc.ExportAsFixedFormat(dst, 17)
        o.Quit();
        if os.path.exists(dst):
            return True
        else:
            return False
    
    
    # 转换 Ppt文件档到pdf
    def ConvertPptToPdf(src, dst):
        if not os.path.exists(src):
            print(src + "不存在,无法继续!")
            return False
        os.system('taskkill /im wps.exe')
        # 如果文件存在就删除
        if os.path.exists(dst):
            os.remove(dst)
        wpp = win32com.client.Dispatch("Kwpp.Application")
        # o.Visible=False
        ppt = wpp.Presentations.Open(src)
        ppt.SaveAs(dst, 32)
        ppt.Close()
        wpp.Quit()
        if os.path.exists(dst):
            return True
        else:
            return False
    
    
    # 转换 xls文件档到pdf
    def ConvertXlsToPdf(src, dst):
        if not os.path.exists(src):
            print(src + "不存在,无法继续!")
            return False
        os.system('taskkill /im wps.exe')
        # 如果文件存在就删除
        if os.path.exists(dst):
            os.remove(dst)
        xlApp = win32com.client.Dispatch("Ket.Application")
        excel = xlApp.Workbooks.Open(src)
        excel.ExportAsFixedFormat(0, dst)
        excel.Close()
        xlApp.Quit()
        if os.path.exists(dst):
            return True
        else:
            return False
    
    
    # 当前目录
    d = os.path.dirname(__file__)
    abspath = os.path.abspath(d)
    #
    #
    # 测试用例
    src = abspath + r"/Doc/test.doc"
    dst = abspath + r"/Doc/test.doc.pdf"
    r = ConvertDocToPdf(src, dst)
    print(r)
    
    # 测试用例
    src = abspath + r"/Doc/test.xlsx"
    dst = abspath + r"/Doc/test.xlsx.pdf"
    r = ConvertXlsToPdf(src, dst)
    print(r)
    
    # 测试用例
    src = abspath + r"/Doc/test.pptx"
    dst = abspath + r"/Doc/test.pptx.pdf"
    r = ConvertPptToPdf(src, dst)
    print(r)
  • 相关阅读:
    Parameter Binding in ASP.NET Web API
    Which HTTP methods match up to which CRUD methods?
    ErrorHandling in asp.net web api
    HttpStatusCode
    Autofac Getting Started(默认的构造函数注入)
    Autofac Controlling Scope and Lifetime
    luvit 被忽视的lua 高性能框架(仿nodejs)
    undefined与null的区别
    VsCode中使用Emmet神器快速编写HTML代码
    字符串匹配---KMP算法
  • 原文地址:https://www.cnblogs.com/littlehb/p/9684611.html
Copyright © 2011-2022 走看看