PDF 拆分/合并
2024-10-21 05:22:45
不会真的有人会去下载那些广告免费,实则要收会员费的黑心软件来进行PDF的拆分合并吧???
在下载两个均不能免费实现PDF自由拆分、合并,以及PDF打印方式会增加文件大小的情况下,一个合格的程序员肯定不能向不良商家低头,所以使用PyPDF2实现这些功能,并给大家分享一个简单、易用、易懂的python小程序。
from PyPDF2 import PdfFileReader, PdfFileMerger, PdfFileWriter def merge(input1,input2,output): file_merger = PdfFileMerger()
file_merger.append(input1)
file_merger.append(input2)
file_merger.write(output) def split(input,output,start_page, end_page):
try:
read_file = input
fp_read_file = open(read_file, 'rb')
pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式话
page_count = pdf_input.getNumPages() # 获取PDF页数
print("该文件共有{}页".format(page_count)) # 打印页数 try:
print(f'开始分割{start_page}页-{end_page}页,保存为{output}......')
pdf_output = PdfFileWriter() # 实例一个 PDF文件编写器
for i in range(start_page, end_page):
pdf_output.addPage(pdf_input.getPage(i))
with open(output, 'wb') as sub_fp:
pdf_output.write(sub_fp)
print(f'完成分割{start_page}页-{end_page}页,保存为{output}!')
except IndexError:
print(f'分割页数超过了PDF的页数')
# fp.close()
except Exception as e:
print(e) if __name__ == '__main__':
input1 = open(r"1.pdf", "rb") #打开第一个PDF文件
input2 = open(r"2.pdf", "rb") #打开第二个PDF文件
output=r'submit.pdf'
merge(input1,input2,output) # input = r"submit.pdf" #打开第二个PDF文件
# output= r'1.pdf'
# split(input,output,9,35) # start 起始页 从0 开始算,end 是尾页从1开始算
最新文章
- 一些Asp.Net面试题答案
- 单片机C语言探究--为什么变量最好要赋初值
- H5 使用
- C#与时间有关的一些方法
- Android 近百个项目的源代码
- [Redux] Using mapDispatchToProps() Shorthand Notation
- 打印星号(*)三角形(C# Linq实现)的小例子
- Node.js 常用工具
- JavaScript进阶(一)抽离公共函数
- SpringAOP术语
- P2P互联网金融企业的四大转型方向
- 第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题
- 关于React Native中FlatList的onEndReached属性频繁调用的一种解决办法
- Educational Codeforces Round 48 (Rated for Div. 2)
- 实验七:Xen环境下cirrOS的安装配置
- Javascript生成GUID算法
- 如何在 OSX 中使用多个JDK版本
- 135.Candy---贪心
- 《JavaScript 高级程序设计》总结
- 一图看懂深度学习框架对比----Caffe Torch Theano TensorFlow
热门文章
- Hbase——API操作
- SpringBoot 2.X 快速掌握
- syc-day2
- 30款提升组织效能 SaaS 工具,我们的宝藏工具箱大公开
- Number.prototype.toString()方法
- 使用html2canvas,由html转换canvas时,出现图片丢失问题解决方案
- javascript写无缝平移的轮播图
- 基于Vue2.x的前端架构,我们是这么做的
- C++ 练气期之一文看懂字符串
- STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储