PyPDF2.PdfFileMerger 只写第一个 pdf

PyPDF2.PdfFileMerger only writes first pdf

我有几个要合并的 Pdf。为此,我引用了 https://pythonhosted.org/PyPDF2/PdfFileMerger.html#PyPDF2.PdfFileMerger.write Documentation as well as this Merge PDF files post 作为参考。 我的代码从我的 pdf 所在的目录读取并尝试将新的 pdf 写入另一个目录

    def concatenate_pdfs(path_to_pdf_dir, output_dir):
        """merge all the pdfs that lie in output_dir into one pdf and store it in path_to_pdf_dir"""
        merger = PyPDF2.PdfFileMerger()
        for filepath in glob(f'{output_dir}*.pdf'):
            merger.append(filepath)
        merger.write(f'{path_to_pdf_dir}/output.pdf')
        merger.close()

新的 pdf 已创建,但仅使用第一个被解析的 pdf。

我这样做的时候出现同样的问题:

def concatenate_pdfs(path_to_pdf_dir, output_dir):
    """merge all the pdfs that lie in output_dir into one pdf and store it in path_to_pdf_dir"""
    merger = PyPDF2.PdfFileMerger()
    f1 = 'path_to_first_pdf'
    f2 = 'path_to_second_pdf'
    f3 = 'path_to_nth_pdf'
    merger.append(f1)
    merger.append(f2)
    merger.append(f3)
    merger.write(f'{path_to_pdf_dir}/output.pdf')
    merger.close()

在这种情况下,只有 f1 会写入我的 output.pdf

为了后代:

将文件添加到与 merger.append(open(filepath, 'rb')) 的合并中,因为 PyPDF 与文件 reader/writers.

有一些奇怪的内部问题