Python实现简单拆分PDF文件的方法

作者:willzhao 时间:2022-09-27 19:20:37 

本文实例讲述了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,PDF
0
投稿

猜你喜欢

  • python递归函数求n的阶乘,优缺点及递归次数设置方式

    2022-12-08 16:17:08
  • Django中使用session保持用户登陆连接的例子

    2021-08-29 03:27:30
  • 使用Python画出小人发射爱心的代码

    2022-08-07 01:52:16
  • Oracle 的入门心得 强烈推荐

    2009-05-24 19:55:00
  • 深入了解Python 方法之类方法 & 静态方法

    2023-07-27 04:15:37
  • 在ASP.NET 2.0中操作数据之五十四:添加新记录时包含一个文件上传选项

    2024-03-16 02:11:24
  • Pytorch 和 Tensorflow v1 兼容的环境搭建方法

    2022-04-05 12:19:06
  • Python后台开发Django会话控制的实现

    2022-11-09 22:29:16
  • 关于MySql 10038错误的完美解决方法(三种)

    2024-01-27 06:16:18
  • pandas读取CSV文件时查看修改各列的数据类型格式

    2023-09-26 16:44:58
  • MySQL删除外键、增加外键以及删除主键、增加主键的实战步骤

    2024-01-26 00:58:52
  • python发腾讯微博代码分享

    2022-05-27 04:45:00
  • Python socket网络编程TCP/IP服务器与客户端通信

    2023-09-13 01:46:02
  • 使用python读取txt文件的内容,并删除重复的行数方法

    2022-05-08 19:41:56
  • Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)

    2021-01-08 16:14:34
  • ASP访问SQL Server内置对象

    2008-04-05 06:49:00
  • mysql mysqldump只导出表结构或只导出数据的实现方法

    2024-01-23 19:46:55
  • 图片变形扭曲特效js脚本

    2008-11-20 12:57:00
  • 微信小程序实现搜索框功能

    2024-04-16 10:31:05
  • Tensorflow之MNIST CNN实现并保存、加载模型

    2023-10-16 06:21:33
  • asp之家 网络编程 m.aspxhome.com