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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
python3访问sina首页中文的处理方法
Feb 24 Python
简单介绍Python中的len()函数的使用
Apr 07 Python
Python通过Pygame绘制移动的矩形实例代码
Jan 03 Python
wxpython实现图书管理系统
Mar 12 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
Oct 21 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
解析python实现Lasso回归
Sep 11 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
Python 内置函数速查表一览
Jun 02 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
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
原生js开发的日历插件
2017/02/04 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
form表单序列化详解(推荐)
2017/08/15 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
python 字符串和整数的转换方法
2018/06/25 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
2020/03/16 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
购买一个高级域名:BuyDomains
2018/03/11 全球购物
小学家长会邀请函
2014/01/23 职场文书
销售总经理岗位职责
2014/03/15 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书