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实现用于测试网站访问速率的方法
May 26 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
numpy中的delete删除数组整行和整列的实例
May 09 Python
python实现txt文件格式转换为arff格式
May 31 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
Sep 21 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
jquery文字填写自动高度的实现方法
2016/11/07 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
Vue项目移动端滚动穿透问题的实现
2020/05/19 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
python将文本中的空格替换为换行的方法
2018/03/19 Python
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
Python多进程fork()函数详解
2019/02/22 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
三星美国官网:Samsung美国
2017/02/06 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
大学生自荐书范文
2013/12/10 职场文书
教师学习培训邀请函
2014/02/04 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
行政前台岗位职责
2015/04/16 职场文书
应收账款管理制度
2015/08/06 职场文书
组织委员竞选稿
2015/11/21 职场文书
幼儿园家长心得体会
2016/01/21 职场文书