痛点: 相信大家都会遇到一种场景。老师/上司要求你把某个文件转为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、小结

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

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

办公利器!用Python快速将任意文件转为PDF的更多相关文章

  1. 简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)

    直接执行的python代码ipynb2pdf.py 主要思路.将ipynb文件转成tex文件,然后使用latex编译成pdf.由于latex默认转换不显示中文,需要向tex文件中添加相关中文包. 依赖 ...

  2. 将Rmarkdown文件转为pdf文件

    knitr包只能够将R markdown文件转为html格式,若想要将其转化为pdf格式,还要安装另一个包 # Install and load package install.packages(&q ...

  3. java将word文件转为pdf

    import java.io.File; import com.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch; public ...

  4. flask 文件转为pdf并添加二维码

    背景: 宝安区需求,企业会下载表格,打印后填报.填报后收上表格,统一录入PDA.因为某台PDA只能录某个地方的表格,所以他们希望纸质表上有个二维码,扫描出现填报公司的一些信息,以及统计(好像是这样,没 ...

  5. 将doc文件批量转为pdf文件

    需要将不少doc文件转为pdf,WPS带有这种功能,但是鼠标点击次数太多以后整个人都变得很烦躁 用了一下午去搜这方面的工具软件,找到若干.有一些免费,有一些试用的,但总归就找到一个真正能用,虽说生成的 ...

  6. openoffice启动服务并将office文件转换为pdf文件

    1.首先下载最新版的openoffice工具,安装完成之后安装服务,, win+r打开命令提示符 输入cmd,cd C:\Program Files (x86)\OpenOffice 4\progra ...

  7. markdown转为pdf文件

    要求: 把.md格式转为.pdf格式,并批量处理,最后将多个pdf文件合并为一个pdf并以文件名作为书签名 解决思路: 1.md格式的markdown文件转为html 为了将 md 格式转换成 htm ...

  8. python从任意文件读取邮件地址输出的代码

    如下的资料是关于python从任意文件读取邮件地址输出的代码. # This script takes whatever you throw at stdin and outputs email ad ...

  9. Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)

    今天看下群里在讨论Discuz!X 3.4 任意文件删除漏洞,自己做了一些测试,记录一下过程.结尾附上自己编写的python脚本,自动化实现任意文件删除. 具体漏洞,请查看 https://paper ...

随机推荐

  1. [DB] SQL 必知必会

    整体架构 数据类型 文本类:CHAR.VARCHAR(可变长度字符,多使用).TEXT.LONGTEXT(文本较大时使用) 数字类:TINYINT.INT.BIGINT.FLOAT.DOUBLE 日期 ...

  2. (KVM连载) 8.2.3 KVM CPU性能测试方法

    (KVM连载) 8.2.3 KVM CPU性能测试方法 01/08/2013MASTER  2 COMMENTS 8.2.3 性能测试方法 本节的CPU性能测试选取了SPEC CPU2006.内核编译 ...

  3. robot framework列表

    一.列表(list) python中创建列表:a=[1,2,3],b=[],c=[a,b,c,[1,2,3]],d=[a,b,c,1,2,3] robotframework中创建列表(list):通过 ...

  4. s9 Linux 进程管理命令

    9.1 ps:查看进程 9.2-3 pstree & pgrep 9.4-6 kill & killall & pkill 9.7 top:实时显示系统中各个进程的资源占用状况 ...

  5. Centos7.3 进入救援模式,解决虚拟机开机引导只能看到一个横杠

    问题描述:搭建在CAS服务器中的虚拟机开机后只能看到一个横杠,因为开发同事的一些操作使glibc库/lib64/libc.so.6软链接失效 1.libc.so.6 是c运行时库 glibc的软链接, ...

  6. 关于C语言的指针数组与指针数组的个人理解

    一.指针数组与指针数组 1,指针数组 顾名思义,即一个元素全部是指针的数组,其形式与普通数组相似,形式如 *a[N]. 在理解指针数组的使用方式前,我先来说下我个人对数组的理解. 比如一维整形数组(形 ...

  7. 西门子 S7-300 以太网模块连接 WINCC方案

    北京华科远创科技有限研发的远创智控ETH-YC模块,型号有MPI-ETH-YC01和PPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控 ...

  8. 在 Android 使用 QuickJS JavaScript 引擎教程

    quickjs-android 是 QuickJS JavaScript 引擎的 Android 接口框架,整体基于面向对象设计,提供了自动GC功能,使用简单.armeabi-v7a 的大小仅 350 ...

  9. 听说 JVM 性能优化很难?今天我小试了一把!

    文章首发于公众号「陈树义」及个人博客 shuyi.tech,欢迎关注访问. 对于 Java 开发的同学来说,JVM 性能优化可以说是比较难掌握的知识点.这不仅因为 JVM 性能优化需要掌握晦涩难懂的 ...

  10. Python小白的数学建模课-04.整数规划

    整数规划与线性规划的差别只是变量的整数约束. 问题区别一点点,难度相差千万里. 选择简单通用的编程方案,让求解器去处理吧. 『Python小白的数学建模课 @ Youcans』带你从数模小白成为国赛达 ...