python PyPDF2合并pdf问题
作者:互联网
使用PyPDF2合并pdf出现的问题
1.问题一:
错误提示:PdfReadWarning: Xref table not zero-indexed. ID numbers for objects will be corrected. [pdf.py:1736]
解决办法:
1 import sys 2 3 if not sys.warnoptions: 4 import warnings 5 warnings.simplefilter("ignore")
2.问题二:
错误提示:PyPDF2.utils.PdfReadError: Expected object ID (5 0) does not match actual (4 0); xref table not zero-indexed.
并且定位错误时发现PdfFileReader对象的所有方法都不能使用,比如getNumPages、getPage等
解决办法:
1 # 读取源PDF文件 加上strict=False 2 input = PdfFileReader(open(pdf_file, "rb"),strict=False)
合并pdf python代码 来源:https://www.cnblogs.com/ken-yu/p/13924636.html
1 # -*- coding:utf-8*- 2 # 利用PyPDF2模块合并同一文件夹下的所有PDF文件 3 # 只需修改存放PDF文件的文件夹变量:file_dir 和 输出文件名变量: outfile 4 5 import os 6 from PyPDF2 import PdfFileReader, PdfFileWriter 7 import time 8 import sys 9 10 if not sys.warnoptions: 11 import warnings 12 warnings.simplefilter("ignore") 13 14 # 使用os模块的walk函数,搜索出指定目录下的全部PDF文件 15 # 获取同一目录下的所有PDF文件的绝对路径 16 def getFileName(filedir): 17 18 file_list = [os.path.join(root, filespath) \ 19 for root, dirs, files in os.walk(filedir) \ 20 for filespath in files \ 21 if str(filespath).endswith('pdf') 22 ] 23 return file_list if file_list else [] 24 25 # 合并同一目录下的所有PDF文件 26 def MergePDF(filepath, outfile): 27 28 output = PdfFileWriter() 29 outputPages = 0 30 pdf_fileName = getFileName(filepath) 31 32 if pdf_fileName: 33 for pdf_file in pdf_fileName: 34 print("路径:%s"%pdf_file) 35 36 # 读取源PDF文件 37 input = PdfFileReader(open(pdf_file, "rb"),strict=False) 38 39 #获得源PDF文件中页面总数 40 pageCount = input.getNumPages() 41 outputPages += pageCount 42 print("页数:%d"%pageCount) 43 44 # 分别将page添加到输出output中 45 for iPage in range(pageCount): 46 output.addPage(input.getPage(iPage)) 47 48 print("合并后的总页数:%d."%outputPages) 49 # 写入到目标PDF文件 50 outputStream = open(os.path.join(filepath, outfile), "wb") 51 output.write(outputStream) 52 outputStream.close() 53 print("PDF文件合并完成!") 54 55 else: 56 print("没有可以合并的PDF文件!") 57 58 # 主函数 59 def main(): 60 time1 = time.time() 61 file_dir = r"e:\test" #待合并pdf路径 62 outfile = "merge.pdf" #合并好的pdf文件名 63 MergePDF(file_dir, outfile) 64 time2 = time.time() 65 print('总共耗时:%s s.' %(time2 - time1)) 66 67 main()
标签:文件,python,PDF,PyPDF2,file,import,print,pdf 来源: https://www.cnblogs.com/weiyangoo/p/14248061.html