EOF marker not found - How to fix in PyPDF and PyPDF2?

后端 未结 1 1418
生来不讨喜
生来不讨喜 2021-02-14 02:17

I\'m attempting to combine a few PDF files into a single PDF file using Python. I\'ve tried both PyPDF and PyPDF2 - on some files, they both throw this same error:

PdfRe

1条回答
  •  迷失自我
    2021-02-14 02:44

    Is there is still someone looking for merging a "list" of pdfs:

    Note: Using glob to get the correct filelist. <- this will really safe your day ^^

    Check this out: glob module reference

    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")
    

    0 讨论(0)
提交回复
热议问题