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中使用copy模块实现列表(list)拷贝
Apr 14 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
python数字图像处理实现直方图与均衡化
May 04 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
python 使用建议与技巧分享(四)
Aug 18 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
Sep 23 Python
python中的对数log函数表示及用法
Dec 09 Python
python中lower函数实现方法及用法讲解
Dec 23 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 04 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
是否存在第一台收音机的说法
2021/03/01 无线电
php实现的常见排序算法汇总
2014/09/08 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
PHP微信支付实例解析
2016/07/22 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
jquery 插件开发备注
2010/08/27 Javascript
Dojo 学习要点
2010/09/03 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
python查询sqlite数据表的方法
2015/05/08 Python
Python功能键的读取方法
2015/05/28 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
使用matplotlib中scatter方法画散点图
2019/03/19 Python
酒吧总经理岗位职责
2013/12/10 职场文书
房产继承公证书
2014/04/09 职场文书
教育见习报告范文
2014/11/03 职场文书
单位委托函范文
2015/01/29 职场文书
交通安全月活动总结
2015/05/08 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
小英雄雨来观后感
2015/06/09 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书