不会真的有人会去下载那些广告免费,实则要收会员费的黑心软件来进行PDF的拆分合并吧???
在下载两个均不能免费实现PDF自由拆分、合并,以及PDF打印方式会增加文件大小的情况下,一个合格的程序员肯定不能向不良商家低头,所以使用PyPDF2实现这些功能,并给大家分享一个简单、易用、易懂的python小程序。
from PyPDF2 import PdfFileReader, PdfFileMerger, PdfFileWriter def merge(input1,input2,output): file_merger = PdfFileMerger() file_merger.append(input1) file_merger.append(input2) file_merger.write(output) def split(input,output,start_page, end_page): try: read_file = input fp_read_file = open(read_file, 'rb') pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式话 page_count = pdf_input.getNumPages() # 获取PDF页数 print("该文件共有{}页".format(page_count)) # 打印页数 try: print(f'开始分割{start_page}页-{end_page}页,保存为{output}......') pdf_output = PdfFileWriter() # 实例一个 PDF文件编写器 for i in range(start_page, end_page): pdf_output.addPage(pdf_input.getPage(i)) with open(output, 'wb') as sub_fp: pdf_output.write(sub_fp) print(f'完成分割{start_page}页-{end_page}页,保存为{output}!') except IndexError: print(f'分割页数超过了PDF的页数') # fp.close() except Exception as e: print(e) if __name__ == '__main__': input1 = open(r"1.pdf", "rb") #打开第一个PDF文件 input2 = open(r"2.pdf", "rb") #打开第二个PDF文件 output=r'submit.pdf' merge(input1,input2,output) # input = r"submit.pdf" #打开第二个PDF文件 # output= r'1.pdf' # split(input,output,9,35) # start 起始页 从0 开始算,end 是尾页从1开始算