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 相关文章推荐
在Django框架中运行Python应用全攻略
Jul 17 Python
Python实现各种排序算法的代码示例总结
Dec 11 Python
Python3 socket同步通信简单示例
Jun 07 Python
python的socket编程入门
Jan 29 Python
python中subprocess批量执行linux命令
Apr 27 Python
python使用selenium实现批量文件下载
Mar 11 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
python3 实现调用串口功能
Dec 26 Python
Pytorch上下采样函数--interpolate用法
Jul 07 Python
详解Selenium 元素定位和WebDriver常用方法
Dec 04 Python
python中delattr删除对象方法的代码分析
Dec 15 Python
用python制作个音乐下载器
Jan 30 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
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
php中错误处理操作实例分析
2019/08/23 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
利用n工具轻松管理Node.js的版本
2017/04/21 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python三级菜单的实例
2017/09/13 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
python中实现词云图的示例
2020/12/19 Python
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
房地产员工找工作的自我评价
2013/11/15 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
职业生涯规划书前言
2014/04/15 职场文书
项目经理任命书
2014/06/04 职场文书
自书遗嘱范文
2015/08/07 职场文书
英语导游欢迎词
2015/09/30 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
Pytorch 实现变量类型转换
2021/05/17 Python
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python