原文地址请点击这里
@TOC
前言
工作中,用到 PDF 文件的时候,真是太常见了。但你会发现,很多时候,咱们须要将几份 PDF 合并为一个 PDF 文件,这个时候你往往会去百度,而后关上一个付费的 PDF 合并网站开始合并。
还在傻傻付费合并 PDF 文件?
明天,我给你分享一个 一键合并 PDF 的办公自动化计划!还是用咱们相熟的 Python 语言,不过这回咱们会调用 PyPDF2
这个模块。具体如何应用这个模块,我这里就不具体说了,具体看 http://pythonhosted.org/PyPDF2/
这个官网阐明。明天,咱们要用到什么,我就教大家什么,毕竟办公中,你也没工夫去学习那些跟工作没有什么关系的货色。
咱们的工作
将 1.pdf 和 2.pdf 这两个文档合并成 3.pdf。
理清工作流程
做事件之前,你必须要明确你做事件的逻辑,也就是工作流程,这个对于咱们解决重复性工作而言,是必须要做的:
- 读取 1.pdf 的文件,写入 3.pdf
- 读取 2.pdf 的文件,写入 3.pdf
看似合并的一个简略操作,的确不是那么简略的合并的。
让 Python 开干
导入 PyPDF2 模块:
from PyPDF2 import PdfFileReader, PdfFileWriter
这两个办法对应了 pdf 文件的读取和写入,其中 PdfFileReader 能读取文件,PdfFileWriter 能够写入文件。
留神:读取必须一页一页地读取并写入,也就是说不能一下子把整个文件都读取了再写入,必须读取一页写入一页。
侥幸的是,咱们样例 1.PDF 和 2.pdf 都只有一页,这里的揭示是特地给小伙伴筹备的,可千万别跳到坑里去了。
from PyPDF2 import PdfFileReader, PdfFileWriter
path = r'C:\Users\xxxxxx'
pdf_writer = PdfFileWriter()
for i in range(1, 2):
pdf_reader = PdfFileReader('E:\demo\{}.pdf'.format(i))
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))
with open('E:\demo\3.pdf', 'wb') as out:
pdf_writer.write(out)
细心地你会发现,合并在循环中,然而输入在循环外,没错,这就印证了咱们之前说的“读取一页写入一页”。with
这句话,新建了 3.pdf,并由写入器的 pdf_writer.write(out)
办法输入。
序幕
下一期,我给你科普一下如何让 Python 帮咱们拆分 PDF。