编程语言
首页 > 编程语言> > python PyPDF2合并pdf问题

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