Python实现简单拆分PDF文件的方法


Posted in Python onJuly 30, 2015

本文实例讲述了Python实现简单拆分PDF文件的方法。分享给大家供大家参考。具体如下:

依赖pyPdf处理PDF文件
切分pdf文件

使用方法:
1)将要切分的文件放在input_dir目录下
2)在configure.txt文件中设置要切分的份数(如要切分4份,则设置part_num=4)
3)执行程序
4)切分后的文件保存在output_dir目录下
5)运行日志写在pp_log.txt中

P.S. 本程序可以批量切割多个pdf文件

from pyPdf import PdfFileWriter, PdfFileReader
import os
import time
import sys
def part_pdf(input_file, output_file, config_count, f_w, now, file_name):
  file1 = file(input_file, 'rb')
  pdf = PdfFileReader(file1)
  pdf_pages_len = len(pdf.pages)
  if config_count <= pdf_pages_len:
    ye = pdf_pages_len / config_count
    lst_ye = pdf_pages_len % config_count
    part_count = 0
    part_count_ye = 0
    for fen in range(config_count):
      part_count += 1
      if part_count == config_count:
        part_ye = ye + lst_ye
      else:
        part_ye = ye
      write_pdf(pdf, part_count_ye, part_count_ye+part_ye, fen, output_file)
      part_count_ye += ye
  else:
    f_w.writelines('time: '+now+' file name: '+file_name+' status: part_num > pdf pages [error]\n')
    sys.exit(1)
def write_pdf(pdf, part_count_ye, part_count_ye_end, fen, output_file):
  out = PdfFileWriter()
  for pp in range(part_count_ye, part_count_ye_end):
    out.addPage(pdf.getPage(pp))
  ous = file(output_file+'_'+str(fen+1)+'.pdf', 'wb')
  out.write(ous)
  ous.close()
def pdf_main():
  f = open('configure.txt', 'r')
  f_w = open('pp_log.txt', 'a')
  now = time.strftime('%Y-%m-%d %H:%M:%S')
  for i in f:
    i_ = i.strip()
    aa = i_.split('=')[1]
    if i_.find('part_num=') != -1 and aa.isdigit():
      config_count = int(aa)
    else:
      f_w.writelines('time: '+now+' status: part_num in configure.txt is error [error]\n')
      sys.exit(1)
  files = os.listdir('input_dir/')
  for each in files:
    input_file = 'input_dir/'+each
    file_name = input_file[input_file.index('/'):input_file.index('.')]
    output_file = 'output_dir/'+file_name
    part_pdf(input_file, output_file, config_count, f_w, now, file_name)
    f_w.writelines('time: '+now+' file name: '+file_name+' status: success\n')
pdf_main()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python 链接和操作 memcache方法
Mar 04 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
python 检查是否为中文字符串的方法
Dec 28 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
pandas数据集的端到端处理
Feb 18 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
django 环境变量配置过程详解
Aug 06 Python
python同时替换多个字符串方法示例
Sep 17 Python
python如何从键盘获取输入实例
Jun 18 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 Python
Python 列表反转显示的四种方法
Nov 16 Python
使用Python脚本生成随机IP的简单方法
Jul 30 #Python
Python实现批量读取word中表格信息的方法
Jul 30 #Python
python删除特定文件的方法
Jul 30 #Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 #Python
Python的迭代器和生成器
Jul 29 #Python
在Python程序中操作MySQL的基本方法
Jul 29 #Python
Python操作Word批量生成文章的方法
Jul 28 #Python
You might like
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
玩转虚拟域名◎+ .
2006/10/09 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
javascript Excel操作知识点
2009/04/24 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
jQuery实现tab选项卡效果的方法
2015/07/08 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
Python SMTP配置参数并发送邮件
2020/06/16 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
班组长安全职责
2014/01/05 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
飞屋环游记观后感
2015/06/08 职场文书
地雷战观后感
2015/06/09 职场文书
职工食堂管理制度
2015/08/06 职场文书
学生安全责任协议书
2016/03/22 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android