首页 > 编程语言 >如何使用python进行pdf文件分割

如何使用python进行pdf文件分割

时间:2023-09-23 15:22:43浏览次数:40  
标签:分割 p1 PdfFileReader python PyPDF2 merge reader pdf

1.安装 PyPDF2 包

pip install PyPDF2

然后
import PyPDF2

2.在 PyPDF2 库中,可以使用以下代码打开 PDF 文件:

pdf_file = open('filename.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)
total_pages = pdf_reader.numPages

3.下面代码将每一页分开

from  PyPDF2 import PdfFileReader,PdfFileWriter

pdf_path = r"F:\工作\1.pdf"
save_path = r"F:\工作\a\a"
# Split Pages of PDF
pdf_reader = PdfFileReader(pdf_path)
for i in range(0,pdf_reader.getNumPages()):
    pdf_writer = PdfFileWriter()
    pdf_writer.addPage(pdf_reader.getPage(i))
    # Every page write to a path
    with open(save_path+'{}.pdf'.format(str(i)), 'wb') as fh:
        pdf_writer.write(fh)
    print('{} Save Sucessfully !\n'.format(str(i)))

4.  2个PDF 文件合并为1个

from  PyPDF2 import PdfFileReader,PdfFileWriter

merge_pdf = r"F:\工作\z.pdf"
p1_pdf = r"F:\工作\a\a0.pdf"
p2_pdf = r"F:\工作\a\a1.pdf"

p1_reader = PdfFileReader(p1_pdf)
p2_reader = PdfFileReader(p2_pdf)

merge = PdfFileWriter()
# Write p1
for i in range(0,p1_reader.getNumPages()):
    merge.addPage(p1_reader.getPage(i))
# Write p2
for j in range(0,p2_reader.getNumPages()):
    merge.addPage(p2_reader.getPage(j))
# Write out
with open(merge_pdf,'wb') as f:
    merge.write(f)

  

5.将多个单页合并成一页

from  PyPDF2 import PdfFileReader,PdfFileWriter

merge_pdf = r"F:\工作\z.pdf"
p_pdf = r"F:\工作\a\a"

merge = PdfFileWriter()

for i in range(220,227):
    p_reader = PdfFileReader(p_pdf + str(i) +'.pdf')
    for i in range(0,p_reader.getNumPages()):
        merge.addPage(p_reader.getPage(i))
# Write out
with open(merge_pdf,'wb') as f:
    merge.write(f)

  不知道为什么,直接从原PDF文档中截取某几页的代码总是不正常。只好采用以上分步执行的办法。

 

 

参考:https://pythonjishu.com/ugmvrnorpclhikd/

https://zhuanlan.zhihu.com/p/357378479?utm_id=0

标签:分割,p1,PdfFileReader,python,PyPDF2,merge,reader,pdf
From: https://www.cnblogs.com/pu369/p/17724414.html

相关文章

  • python
    #扫描文件importosdefsaomiao(wenjian):foriinos.listdir(wenjian):i1=os.path.join(wenjian,i)ifos.path.isfile(i1):print(os.path.abspath(i1))elifos.path.isdir(i1):saomiao(i1)else:passs......
  • python打地鼠游戏一(随机数,时间)
    #打地鼠#地鼠出现的位置importrandomimporttime#得分score=0ifscore==0:game_time=10#定义时间限制print(f'欢迎来到打地鼠游戏,您有{game_time}秒时间打中地鼠')star_time=time.time()#开始时间end_time=star_time+game_timewhiletime.tim......
  • python基础(格式化字符,if分支语句)
    python格式化格式符号%%输出%%s字符串%d有符号十进制整数%f浮点型%c字符%u无符号十进制整数进制转换bin()2进制oct()8进制int()十进制//int(‘0o111’,8)hex()16进制2进制0b8进制0o16进制0xabs绝对值判断语句if....else猜数字小游戏......
  • python 循环 import模块
    关于循环while条件:当条件为true时,不断执行子代码foriinrange(20):循环20次子代码break结束当前循环continue跳过当前循环importrandom模块random.choice()随机一个参数random.sample(数据源,3)从数据源中随机抽3个值random.randint(1,100)打印一个随机数......
  • 安装python3.8.5
    1本地下载并上传到服务器https://www.python.org/downloads/source/2 mkdir-p/usr/local/python33 yum-yinstallgcczlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devellibff......
  • 在Python中创建相关系数矩阵的6种方法
    相关系数矩阵(Correlationmatrix)是数据分析的基本工具。它们让我们了解不同的变量是如何相互关联的。在Python中,有很多个方法可以计算相关系数矩阵,今天我们来对这些方法进行一个总结PandasPandas的DataFrame对象可以使用corr方法直接创建相关矩阵。由于数据科学领域的大多数人都......
  • 鸟哥Linux私房菜PDF百度云解读
    Linux操作系统作为一款强大而又开源的操作系统,一直备受IT从业者和技术爱好者的青睐。而在学习Linux的过程中linux系统安装教程,不可或缺的就是《鸟哥的Linux私房菜》这本经典著作。而如今,我们更有幸能够通过百度云来获取这本宝贵的学习资料。下面小编将为大家详细介绍《鸟哥的Linux......
  • python08
    2.3ftext=f"我喜欢{"跑步"},跑完之后满头大汗"action="跑步"text=f"我喜欢{action},跑完之后满头大汗"name="张云嘉"age=18text="我的名字叫{name},今年{age}岁"print(text)3.1运算符优先级算数优先级大于比较优先级if2+10>11:比较优......
  • Python分享之动态类型
    动态类型(dynamictyping)是Python另一个重要的核心概念。我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值。这些都与动态类型的概念相关。动态类型在我们接触的对象中,有一类特殊的对象,是用于存储数据的。常见的该类对象包括各种数字,字符串,表,词......
  • python+playwright 学习-83 page.expect_response()捕获网络返回数据
    前言expect_response()方法可以捕获接口返回的数据,在爬取网页数据时非常有用。expect_response()使用官方文档示例withpage.expect_response("https://example.com/resource")asresponse_info:page.get_by_text("triggerresponse").click()response=response_inf......