文章目录

  • 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相关推荐

  1. python爬取百度图片,自定义关键字和页数

    修改了下载的图片打不开的问题,原因:请求头 可执行文件下载 import requests import time import os from multiprocessing import Pool ...

  2. python获取pdf页数_Python分割指定页数的pdf文件方法

    Python分割指定页数的pdf文件方法 如下所示: from PyPDF2 import PdfFileWriter, PdfFileReader # 开始页 start_page = 0 # 截止 ...

  3. Python按照指定页数分割PDF文件

    已经更新PDF分割器3.0 通过Python中的PyPDF2模块实现, 具体操作步骤分为: 1.获取原始pdf文件: 2.将要分割的PDF内容格式化: 3.实例一个 PDF文件编写器: 4.把3到4页 ...

  4. python写入pdf文件_Python用于NLP :处理文本和PDF文件

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这是我的Python用于自然语言处理(NLP)系列文章的第一篇文章.在本文中,我们将从Python for ...

  5. python 知乎 合并 pdf_实例4:用Python提取不同PDF文件中的页面合并进新的PDF文件...

    公司船务部一个重要任务就是需要准备每单货物的发票,从系统导出发票时是默认存为一个PDF文档,在打印的时候,有多少个文件,就需要点多少次"打印".如果能够将当天的发票PDF档合并在一 ...

  6. PDF文件加密有什么方法?如何给PDF文件加密

    平时如果处理到一些文件的时候,觉得它比较重要就会给这个文件设置密码,就向给手机设置密码一样,如果需要查看的话就需要输入密码才可以,其实原理都是差不多.就拿在处理到PDF文件的时候,需要给它加密,我们该 ...

  7. Tool之Adobe:解决Adobe acrobat pro将PDF文件进行批量保存单页PDF文件(图文教程)

    Tool之Adobe:解决Adobe acrobat pro将PDF文件进行批量保存单页PDF文件(图文教程) 目录 解决Adobe acrobat pro将PDF文件进行批量逐个单独保存单页文件(图 ...

  8. Leadtools Document教程:如何高效将数千个 PDF 文件拆分并转换为单页图像

    LEADTOOLS Document Suite SDK是LEADTOOLS SDK功能的全面集合,旨在构建需要OCR,MICR,OMR,ICR,条形码,表单识别和处理,PDF,HTML5 / Jav ...

  9. android读取带公章的pdf文件,APP中如何显示带电子签名的PDF文件

    之前碰到一个需求,需要在手机 APP 中显示 pdf 文件.经过调研发现,在电脑上的浏览器如 chrome.safari等,可以直接显示 pdf 文件.由此联想到,在 APP 中能否通过浏览器来加载显 ...

  10. PDF文件只能打印出第一页

    PDF文件只能打印出第一页 异常表现 解决过程 取消不了的任务怎么办? 异常表现 PDF有好多页,都可以正常预览 打印时,只打印出第一页,后续页面打印不出 该打印任务卡死,无法取消 新任务因该任务进程 ...

最新文章

  1. mysql练习_MySQL练习——4
  2. 小数前的0在html不显示,jsp小数显示问题 例如 我在oracle 数据库中查询出来的是 0.01 但是在jsp页面上就显示成 .01 没有前面的0...
  3. 7-11 找最长的字符串 (15 分)
  4. 在日常维护管理中对MySQL 日志的需求
  5. CodeIgniter典型的表单提交验证代码
  6. SAP ABAP第一,两,三代出口型BADI实现 解释的概念
  7. resource和autowired
  8. 【做题】agc002D - Stamp Rally——整体二分的技巧
  9. Chapter 4 Invitations——10
  10. 精确搜索linux日志,Linux 日志查询 - 精确详细
  11. Python必会知识点详细笔记(B站黑马程序员) 上篇 面向过程
  12. mysql用户表怎么命名_数据库表的命名规范
  13. Echarts绘制极坐标系下的多色柱状图
  14. matlab 光平面标定代码,光平面标定法
  15. mysql类似于excel的删除重复项_Excel去除重复项的三种常用技巧
  16. 计算机网络可靠性的重要指标,浅谈如何提高计算机网络的可靠性
  17. java ts流封装工具_从 Java 到 TS,阿里妈妈的接口管理一把梭
  18. SAP 业务交易事件BTE(Business Transaction Event)
  19. 算法笔记——15个瓶子,4只老鼠,测试哪瓶有毒
  20. 营在微博:企业微博营销实战宝典

热门文章

  1. 通过java获取抖音用户主页信息(2020年9月)
  2. FAQ0115 AT32使用AC6编译器注意事项
  3. 《青春无烦恼》基督之灵爱
  4. 哈希函数(散列函数)详解
  5. CSS(Emmet语法、复合选择器、元素显示模式、背景)
  6. 油价小程序开发 - 手把手教你写小程序(适合初学者)
  7. 用c# 实现一个爬虫
  8. 读书笔记:《Designing Data-Intensive Applications》
  9. LevOJ P1685飞跃悬崖(着色问题)
  10. SVN Working copying #39;xxxxx/xxxx/xxxx#39; locked