100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 单面打印机双面打印———python pdf拆分重排

单面打印机双面打印———python pdf拆分重排

时间:2020-03-25 09:52:34

相关推荐

单面打印机双面打印———python pdf拆分重排

单面打印机双面打印———pdf拆分重排

思路

将pdf文件拆分为正序奇数页和倒叙偶数页分别打印

代码

from PyPDF2 import PdfFileReader, PdfFileWriterimport osdef aprtment(file_name):with open(file_name,'rb') as infile:reader = PdfFileReader(infile)number_of_pages=reader.getNumPages()for i in range(number_of_pages):writer=PdfFileWriter()writer.addPage(reader.getPage(i))out_file_name=file_name[:-4]+str(i)+'.pdf'with open(out_file_name,'wb') as outfile:writer.write(outfile)def merge(list_info,outfile,add_blank=False):pdf_output=PdfFileWriter()if add_blank:pdf_input = PdfFileReader('blank.pdf')pdf_output.addPage(pdf_input.getPage(0))for infn in list_info:pdf_input=PdfFileReader(infn)pdf_output.addPage(pdf_input.getPage(0))with open(outfile, 'wb') as w:pdf_output.write(w)def manage_deal(file_name):file_name=file_name[:-4]file_list=[]for i in os.listdir():if file_name in i and len(i)>len(file_name)+4:file_list.append(i)file_list_num=range(len(file_list))right_orde=[]reserve_orde=[]if len(file_list)%2!=0:x=2else:x=1for i in range(0,len(file_list),2):right_orde.append(file_name+str(file_list_num[i])+'.pdf')for i in range(len(file_list)-x,-1, -2):reserve_orde.append(file_name+str(file_list_num[i])+'.pdf')return [right_orde,reserve_orde]def delect_file(file_list):for i in file_list:os.remove(i)for file_name in os.listdir():if '.pdf' in file_name :with open(file_name, 'rb') as infile:reader = PdfFileReader(infile)number_of_pages = reader.getNumPages()if number_of_pages>1:aprtment(file_name)[right_orde,reserve_orde]=manage_deal(file_name)merge(right_orde, '正序'+file_name)if len(right_orde)>len(reserve_orde):merge(reserve_orde, '倒序' + file_name,add_blank=True)else:merge(reserve_orde, '倒序' + file_name, add_blank=False)delect_file(right_orde+reserve_orde)

运行后会将当下文件夹内页数大于1的pdf进行拆分,生成一个正序一个倒序两个文件。

注意:

运行的文件夹里需要有空白页文件“blank.pdf”

下载地址:

https://gibsjjs-/:u:/g/personal/1375626371_365edu_co/EVZz7tLQBMFLvuDvF6eg5kYBsaENz7I6pt0bLViSdMR7fQ?e=cl926O

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。