zoukankan      html  css  js  c++  java
  • 办公利器!用Python快速将任意文件转为PDF

    痛点: 相信大家都会遇到一种场景。老师/上司要求你把某个文件转为pdf,并且是一批(不止一个,一个的话手动就可以搞定),并且这种是枯燥无聊的工作,既没有什么技术含量又累。

    试想一下,如果我把这些文件放到一个文件夹下,执行一下程序,几分钟后这些文件就转好。这样半天的活,只要花几分钟就解决了。岂不是美滋滋!!!

    今天辰哥就教大家将任意文件批量转为PDF,这里以日常办公的wordexcelppt为例,这三种格式的文件转为PDF。

    01、word转PDF

    这里借助Python的docx2pdf去完成转换操作,该库的安装命令如下:

    pip install docx2pdf
    

    目标:读取文件夹下的全部word文件,然后进行转换,最后保存到对应的文件夹中。

    这里辰哥新建两个word文件作为演示,打开其中一个word看看

    里面不仅有文字,同时包含有图片

    
    import os
    from docx2pdf import convert
    word_path = 'word_path'
    word_to_pdf = 'word_to_pdf'
    for i,j,name in os.walk(word_path):
        for word_name in name:
             convert(word_path+"/"+word_name, word_to_pdf+"/"+word_name.replace("docx","pdf"))
    

    其中word_path是存放word文件的文件夹,word_to_pdf是转换后的pdf存放文件夹。

    打开第一个pdf,内容如下:

    可以看到文字图片、以及排版****这些都与原文件(word)一模一样

    02、excel转PDF

    这里需要使用到的库是comtypes,下面直接上案例。

    上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。

    pip install pywin32
    

    目标: 将excel文件转为PDF

    这里辰哥新建一个excel文件作为演示

    
    import os
    from win32com.client import DispatchEx
    excel_path = "D:/公众号/0626/Python研究者.xls"
    pdf_path = "D:/公众号/0626/Python研究者.pdf"
    
    xlApp = DispatchEx("Excel.Application")
    xlApp.Visible = False
    xlApp.DisplayAlerts = 0
    books = xlApp.Workbooks.Open(excel_path,False)
    books.ExportAsFixedFormat(0, pdf_path)
    books.Close(False)
    xlApp.Quit()
    

    运行之后生成pdf文件

    打开pdf

    可以看到excel中的数据已经全部转为PDF格式。

    03、ppt转PDF

    这里需要使用到的库是comtypes,下面直接上案例。

    上面的word转pdf已经教大家学会了从文件夹中读取全部的文件,所有这里同样的就不再赘述。

    目标:ppt转为pdf

    这个是辰哥之前做分享时弄的一个ppt,咱们就以这个ppt为例

    
    
    import comtypes.client
    import os
    def ppt_to_pdf():
        #设置路径
        input_file_path=os.path.abspath("Python学习规划路线.pptx")
        output_file_path=os.path.abspath("Python学习规划路线.pdf")
        #创建PDF
        powerpoint=comtypes.client.CreateObject("Powerpoint.Application")
        powerpoint.Visible=1
        slides=powerpoint.Presentations.Open(input_file_path)
        #保存PDF
        slides.SaveAs(output_file_path,32)
        slides.Close()
    

    这里将会ppt:Python学习规划路线.pptx转为Python学习规划路线.pdf

    打开pdf其内容如下:

    04、小结

    本文基本就成功实现目标要求,从效果来看还是非常不错的!完整源码可由文中代码组合而成(已全部分享在文中),感兴趣的读者可以自己尝试!

    一定要动手尝试 一定要动手尝试 一定要动手尝试!

    耐得住寂寞,才能登得顶
    Gitee码云:https://gitee.com/lyc96/projects
  • 相关阅读:
    Java 中的POJO和JavaBean 的区别
    设计模式的六大原则
    AOP
    Jetbrains 全家桶
    centos7 如何关闭防护墙
    Java 面试题常见范围
    putty readme
    单机环境
    flask-caching缓存
    1.restful 规范与APIView
  • 原文地址:https://www.cnblogs.com/chenlove/p/14942054.html
Copyright © 2011-2022 走看看