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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Django中使用group_by的方法
May 26 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
Python中numpy模块常见用法demo实例小结
Mar 16 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
python集合删除多种方法详解
Feb 10 Python
python实现简单的五子棋游戏
Sep 01 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
python实现一个简单RPC框架的示例
Oct 28 Python
Python模拟键盘输入自动登录TGP
Nov 27 Python
正确的理解和使用Django信号(Signals)
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
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
[49:21]TNC vs VG 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第三场 8.20.mp4
2019/08/22 DOTA
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
python实现拓扑排序的基本教程
2018/03/11 Python
python合并同类型excel表格的方法
2018/04/01 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
基于Python实现粒子滤波效果
2020/12/01 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
土木工程实习生自我鉴定
2013/09/19 职场文书
大学生个人实习的自我评价
2014/02/15 职场文书
厨师长岗位职责
2014/03/02 职场文书
升国旗仪式主持词
2014/03/19 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
2014年路政工作总结
2014/12/10 职场文书
详解MySQL集群搭建
2021/05/26 MySQL