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的Django框架中的select_related函数对QuerySet 查询的优化
Apr 01 Python
详解python3中socket套接字的编码问题解决
Jul 01 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
Python创建普通菜单示例【基于win32ui模块】
May 09 Python
python变量的存储原理详解
Jul 10 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
关于python 跨域处理方式详解
Mar 28 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
Pyqt助手安装PyQt5帮助文档过程图解
Nov 20 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 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
php下通过curl抓取yahoo boss 搜索结果的实现代码
2011/06/10 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
thinkPHP实现的联动菜单功能详解
2017/05/05 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
js DOM的学习笔记
2011/12/22 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
jQuery实现动态显示select下拉列表数据的方法
2018/02/05 jQuery
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
Python中base64与xml取值结合问题
2019/12/22 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
python中pow函数用法及功能说明
2020/12/04 Python
.NET程序员的数据库面试题
2012/10/10 面试题
公司门卫的岗位职责
2014/02/19 职场文书
自荐信的格式
2014/03/10 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
2015年考研复习计划
2015/01/19 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
大学学生会竞选稿
2015/11/19 职场文书
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技
css3带你实现3D转换效果
2022/02/24 HTML / CSS
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏