我正在尝试使用Python将一些PDF文件合并到一个PDF文件中.我已经尝试了PyPDF和PyPDF2 - 在某些文件中,它们都抛出同样的错误:
PdfReadError:找不到EOF标记
这是我的代码(page_files)是要合并的PDF文件路径列表:
# use pypdf to combine pdf pages
output = PdfFileWriter()
for pf in page_files:
filestream = file(pf, "rb")
pdf = PdfFileReader(filestream)
for num in range(pdf.getNumPages()):
output.addPage(pdf.getPage(num))
# write final file
outputStream = file(pdf_full_path, "wb")
output.write(outputStream)
outputStream.close()
Run Code Online (Sandbox Code Playgroud)
我已经阅读了关于该主题的一些StackOverflow线程,但没有一个包含有效的解决方案.如果您已经使用Python成功组合了PDF文件,我很乐意听到.谢谢!
Fab*_*ian -1
是否仍然有人在寻找合并 pdf“列表”:
注意:使用 glob 来获取正确的文件列表。<- 这真的会让你的一天安全^^
检查一下:glob 模块参考
from PyPDF2 import PdfFileMerger, PdfFileReader, PdfFileWriter
import os
import glob
class MergeAllPDF:
def __init__(self):
self.mergelist = []
def create(self, filepath, outpath, outfilename):
self.outfilname = outfilename
self.filepath = filepath
self.outpath = outpath
self.pdfs = glob.glob(self.filepath)
self.myrange = len(self.pdfs)
for _ in range(self.myrange):
if self.pdfs:
self.mergelist.append(self.pdfs.pop(0))
self.merge()
def merge(self):
if self.mergelist:
self.merger = PdfFileMerger()
for pdf in self.mergelist:
self.merger.append(open(pdf, 'rb'))
self.merger.write(self.outpath + "%s.pdf" % (self.outfilname))
self.merger.close()
self.mergelist = []
else:
print("mergelist is empty please check your input path")
# example how to use
#update your path here:
inpath = r"C:\Users\Fabian\Desktop\mergeallpdfs\scan\*.pdf" #here are your single page pdfs stored
outpath = r"C:\Users\Fabian\Desktop\mergeallpdfs\output\\" #here your merged pdf will be stored
b = MergeAllPDF()
b.create(inpath, outpath, "mergedpdf")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6788 次 |
| 最近记录: |