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

本文实例讲述了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文件的方法 的全部内容, 来源链接: utcz.com/z/320807.html

回到顶部