不会真的有人会去下载那些广告免费,实则要收会员费的黑心软件来进行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开始算

最新文章

  1. 一些Asp.Net面试题答案
  2. 单片机C语言探究--为什么变量最好要赋初值
  3. H5 使用
  4. C#与时间有关的一些方法
  5. Android 近百个项目的源代码
  6. [Redux] Using mapDispatchToProps() Shorthand Notation
  7. 打印星号(*)三角形(C# Linq实现)的小例子
  8. Node.js 常用工具
  9. JavaScript进阶(一)抽离公共函数
  10. SpringAOP术语
  11. P2P互联网金融企业的四大转型方向
  12. 第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题
  13. 关于React Native中FlatList的onEndReached属性频繁调用的一种解决办法
  14. Educational Codeforces Round 48 (Rated for Div. 2)
  15. 实验七:Xen环境下cirrOS的安装配置
  16. Javascript生成GUID算法
  17. 如何在 OSX 中使用多个JDK版本
  18. 135.Candy---贪心
  19. 《JavaScript 高级程序设计》总结
  20. 一图看懂深度学习框架对比----Caffe Torch Theano TensorFlow

热门文章

  1. Hbase——API操作
  2. SpringBoot 2.X 快速掌握
  3. syc-day2
  4. 30款提升组织效能 SaaS 工具,我们的宝藏工具箱大公开
  5. Number.prototype.toString()方法
  6. 使用html2canvas,由html转换canvas时,出现图片丢失问题解决方案
  7. javascript写无缝平移的轮播图
  8. 基于Vue2.x的前端架构,我们是这么做的
  9. C++ 练气期之一文看懂字符串
  10. STC8H开发(十二): I2C驱动AT24C08,AT24C32系列EEPROM存储