办公利器!用Python快速将任意文件转为PDF
痛点: 相信大家都会遇到一种场景。老师/上司要求你把某个文件转为pdf,并且是一批(不止一个,一个的话手动就可以搞定),并且这种是枯燥无聊的工作,既没有什么技术含量又累。
试想一下,如果我把这些文件放到一个文件夹下,执行一下程序,几分钟后这些文件就转好。这样半天的活,只要花几分钟就解决了。岂不是美滋滋!!!
今天辰哥就教大家将任意文件批量转为PDF,这里以日常办公的word、excel、ppt为例,这三种格式的文件转为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的更多相关文章
- 简单python脚本,将jupter notebook的ipynb文件转为pdf(包含中文)
直接执行的python代码ipynb2pdf.py 主要思路.将ipynb文件转成tex文件,然后使用latex编译成pdf.由于latex默认转换不显示中文,需要向tex文件中添加相关中文包. 依赖 ...
- 将Rmarkdown文件转为pdf文件
knitr包只能够将R markdown文件转为html格式,若想要将其转化为pdf格式,还要安装另一个包 # Install and load package install.packages(&q ...
- java将word文件转为pdf
import java.io.File; import com.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch; public ...
- flask 文件转为pdf并添加二维码
背景: 宝安区需求,企业会下载表格,打印后填报.填报后收上表格,统一录入PDA.因为某台PDA只能录某个地方的表格,所以他们希望纸质表上有个二维码,扫描出现填报公司的一些信息,以及统计(好像是这样,没 ...
- 将doc文件批量转为pdf文件
需要将不少doc文件转为pdf,WPS带有这种功能,但是鼠标点击次数太多以后整个人都变得很烦躁 用了一下午去搜这方面的工具软件,找到若干.有一些免费,有一些试用的,但总归就找到一个真正能用,虽说生成的 ...
- openoffice启动服务并将office文件转换为pdf文件
1.首先下载最新版的openoffice工具,安装完成之后安装服务,, win+r打开命令提示符 输入cmd,cd C:\Program Files (x86)\OpenOffice 4\progra ...
- markdown转为pdf文件
要求: 把.md格式转为.pdf格式,并批量处理,最后将多个pdf文件合并为一个pdf并以文件名作为书签名 解决思路: 1.md格式的markdown文件转为html 为了将 md 格式转换成 htm ...
- python从任意文件读取邮件地址输出的代码
如下的资料是关于python从任意文件读取邮件地址输出的代码. # This script takes whatever you throw at stdin and outputs email ad ...
- Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)
今天看下群里在讨论Discuz!X 3.4 任意文件删除漏洞,自己做了一些测试,记录一下过程.结尾附上自己编写的python脚本,自动化实现任意文件删除. 具体漏洞,请查看 https://paper ...
随机推荐
- VS2010编写32位和64位dll环境配置,以及判断dll是多少位
前言 最近在编写dll注入程序的时候,因为想注入到系统进程,结果发现总是注入失败.自闭了好长一会发现我忘记了我的系统是64位的,系统进程也是64位的,而我编写的待注入的DLL是32位了,所以才导致失败 ...
- MSSQL·查询存储过程中的关键字
阅文时长 | 0.22分钟 字数统计 | 408字符 主要内容 | 1.引言&背景 2.声明与参考资料 『MSSQL·查询存储过程中的关键字』 编写人 | SCscHero 编写时间 | 20 ...
- Fio 输出内容的解释
Fio 输出内容的解释 feilianbb 2016-01-11 16:18:54 27828 收藏 19 文章标签: Linux 存储 Fio SSD 性能 翻译原文来源 https://t ...
- Ubuntu 16.04 Bridge配置
Ubuntu 16.04 Bridge配置 一.安装网桥拓展包 bridge-utils root@ubuntu:~# apt-get install bridge-utils 二.创建网桥设备 // ...
- 强哥memcache学习笔记
搭建memcache服务器:1.在内存中缓存数据2.数据形态以key->value memcache优点:1.快速缓存2.跨域登录memcache缺点:1.复杂的数据存取的操作2.不能永久保存数 ...
- SystemVerilog MCDF检测器
Monitor:检测DUT的边界信号或者内部信号,并且经过打包整理传送给其他的验证平台的组件(例如checker). 一:大的monitor方案 二:分布式的 两个monitor的比较: 比较下来,选 ...
- Linux :忘记使用nohup该如何补救
Linux :忘记使用nohup该如何补救 目录 Linux :忘记使用nohup该如何补救 0x00 摘要 0x01 问题描述 1.1 为何关闭进程 1.2 nohup 作用 0x02 简述 2.1 ...
- 基于 element-plus 封装一个依赖 json 动态渲染的查询控件
前情回顾 基于 el-form 封装一个依赖 json 动态渲染的表单控件 Vue3 封装第三方组件(一)做一个合格的传声筒 功能 使用 vue3 + element-plus 封装了一个查询控件,专 ...
- 在 Visual Studio 里一秒打开 ILSpy,并反编译当前项目
下载 ILSpy(如果已有 ILSpy,忽略此步骤) 1.打开官方git 仓库 - https://github.com/icsharpcode/ILSpy 2.点击右侧的 Releases 最新版, ...
- python 定时任务APScheduler 使用介绍
python 定时任务APScheduler 使用介绍 介绍: APScheduler的全称是Advanced Python Scheduler.它是一个轻量级的 Python 定时任务调度框架. ...