Python-分割PDF文件-如何自定义分割-按页数分割PDF-PyPDF2
文章目录
- 1.PyPDF2库
- 2.作者答疑
1.PyPDF2库
如今网上大部分电子文档数据都是PDF,如何对PDF进行有效的编辑,能够非常有效的提高工作效率,本文介绍采用开源库来自定义分割PDF,亲测可用:
# encoding:utf-8
from PyPDF2 import PdfFileReader, PdfFileWriter
def splitPdf():readFile = 'C:/Users/ajz/Desktop/代琼/2.健力多汤臣倍健氨糖硫酸软骨素钙片48片_已签章.pdf';outFile = 'C:/Users/ajz/Desktop/copy.pdf';pdfFileWriter = PdfFileWriter();# 获取 PdfFileReader 对象pdfFileReader = PdfFileReader(readFile); # 或者这个方式:pdfFileReader = PdfFileReader(open(readFile, 'rb'));# 文档总页数numPages = pdfFileReader.getNumPages();if numPages > 5:# 从第五页之后的页面,输出到一个新的文件中,即分割文档for index in range(5, numPages):pageObj = pdfFileReader.getPage(index)pdfFileWriter.addPage(pageObj)# 添加完每页,再一起保存至文件中pdfFileWriter.write(open(outFile, 'wb'))import os
def split(pdf_file, delta, output_dir):if not os.path.exists(output_dir):os.makedirs(output_dir)if not os.path.exists(pdf_file):returnprint('----------参数信息---------------')print('File:' + pdf_file)print('PageNums:' + str(delta))print('Dest:' + output_dir)print('-----------pdf开始切分-----------')file_name = pdf_file.split('/')[-1].split('.')[0]output_dir = os.path.join(output_dir, file_name)if not os.path.exists(output_dir):os.mkdir(output_dir)input_stream = open(pdf_file, 'rb')pdf_input = PdfFileReader(input_stream)page_count = pdf_input.getNumPages()sum_page_count = int(page_count / (delta * 1.0))remind_page = page_count % deltafor i in range(0, sum_page_count + 1):start = i * deltaend = (i + 1) * deltapdf_out = PdfFileWriter()file_path = os.path.join(output_dir, os.path.split(pdf_file)[1])if i < sum_page_count:full_file_name = file_name + str(start + 1) + '-' + str(end) + ".pdf"file_path = os.path.join(output_dir, full_file_name)print(full_file_name + '切分完成')for j in range(start, end):page = pdf_input.getPage(j)pdf_out.addPage(page)else:full_file_name = file_name + str(start + 1) + '-' + str(start + remind_page) + ".pdf"file_path = os.path.join(output_dir, full_file_name)print(full_file_name + '切分完成')for j in range(delta * (sum_page_count), page_count):page = pdf_input.getPage(j)pdf_out.addPage(page)out_stream = open(file_path, 'wb')pdf_out.write(out_stream)out_stream.close()input_stream.close()print('-----------pdf切分完成-----------')if __name__ == '__main__':readFile = 'C:/Users/ajz/Desktop/广州知了软件有效公司.pdf';split(readFile,2,'C:/Users/ajz/Desktop');
合理的脚本代码可以有效的提高工作效率,减少重复劳动。
2.作者答疑
如有疑问,敬请留言。
Python-分割PDF文件-如何自定义分割-按页数分割PDF-PyPDF2相关推荐
- python爬取百度图片,自定义关键字和页数
修改了下载的图片打不开的问题,原因:请求头 可执行文件下载 import requests import time import os from multiprocessing import Pool ...
- python获取pdf页数_Python分割指定页数的pdf文件方法
Python分割指定页数的pdf文件方法 如下所示: from PyPDF2 import PdfFileWriter, PdfFileReader # 开始页 start_page = 0 # 截止 ...
- Python按照指定页数分割PDF文件
已经更新PDF分割器3.0 通过Python中的PyPDF2模块实现, 具体操作步骤分为: 1.获取原始pdf文件: 2.将要分割的PDF内容格式化: 3.实例一个 PDF文件编写器: 4.把3到4页 ...
- python写入pdf文件_Python用于NLP :处理文本和PDF文件
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从Python for ...
- python 知乎 合并 pdf_实例4:用Python提取不同PDF文件中的页面合并进新的PDF文件...
公司船务部一个重要任务就是需要准备每单货物的发票,从系统导出发票时是默认存为一个PDF文档,在打印的时候,有多少个文件,就需要点多少次"打印".如果能够将当天的发票PDF档合并在一 ...
- PDF文件加密有什么方法?如何给PDF文件加密
平时如果处理到一些文件的时候,觉得它比较重要就会给这个文件设置密码,就向给手机设置密码一样,如果需要查看的话就需要输入密码才可以,其实原理都是差不多.就拿在处理到PDF文件的时候,需要给它加密,我们该 ...
- Tool之Adobe:解决Adobe acrobat pro将PDF文件进行批量保存单页PDF文件(图文教程)
Tool之Adobe:解决Adobe acrobat pro将PDF文件进行批量保存单页PDF文件(图文教程) 目录 解决Adobe acrobat pro将PDF文件进行批量逐个单独保存单页文件(图 ...
- Leadtools Document教程:如何高效将数千个 PDF 文件拆分并转换为单页图像
LEADTOOLS Document Suite SDK是LEADTOOLS SDK功能的全面集合,旨在构建需要OCR,MICR,OMR,ICR,条形码,表单识别和处理,PDF,HTML5 / Jav ...
- android读取带公章的pdf文件,APP中如何显示带电子签名的PDF文件
之前碰到一个需求,需要在手机 APP 中显示 pdf 文件.经过调研发现,在电脑上的浏览器如 chrome.safari等,可以直接显示 pdf 文件.由此联想到,在 APP 中能否通过浏览器来加载显 ...
- PDF文件只能打印出第一页
PDF文件只能打印出第一页 异常表现 解决过程 取消不了的任务怎么办? 异常表现 PDF有好多页,都可以正常预览 打印时,只打印出第一页,后续页面打印不出 该打印任务卡死,无法取消 新任务因该任务进程 ...
最新文章
- mysql练习_MySQL练习——4
- 小数前的0在html不显示,jsp小数显示问题 例如 我在oracle 数据库中查询出来的是 0.01 但是在jsp页面上就显示成 .01 没有前面的0...
- 7-11 找最长的字符串 (15 分)
- 在日常维护管理中对MySQL 日志的需求
- CodeIgniter典型的表单提交验证代码
- SAP ABAP第一,两,三代出口型BADI实现 解释的概念
- resource和autowired
- 【做题】agc002D - Stamp Rally——整体二分的技巧
- Chapter 4 Invitations——10
- 精确搜索linux日志,Linux 日志查询 - 精确详细
- Python必会知识点详细笔记(B站黑马程序员) 上篇 面向过程
- mysql用户表怎么命名_数据库表的命名规范
- Echarts绘制极坐标系下的多色柱状图
- matlab 光平面标定代码,光平面标定法
- mysql类似于excel的删除重复项_Excel去除重复项的三种常用技巧
- 计算机网络可靠性的重要指标,浅谈如何提高计算机网络的可靠性
- java ts流封装工具_从 Java 到 TS,阿里妈妈的接口管理一把梭
- SAP 业务交易事件BTE(Business Transaction Event)
- 算法笔记——15个瓶子,4只老鼠,测试哪瓶有毒
- 营在微博:企业微博营销实战宝典