首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pdf 2. PyPDF2.PdfFileMerger只写第一个pdf

pdf 2. PyPDF2.PdfFileMerger只写第一个pdf
EN

Stack Overflow用户
提问于 2022-01-26 09:32:47
回答 1查看 140关注 0票数 1

我有几个Pdfs,我想合并在一起。为此,我引用了这个https://pythonhosted.org/PyPDF2/PdfFileMerger.html#PyPDF2.PdfFileMerger.write文档以及这个Merge PDF files帖子作为参考。我的代码从pdfs所在的目录中读取,并尝试将新pdf写入另一个目录。

代码语言:javascript
复制
    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。

当我这样做时,也会出现同样的问题:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 09:54:34

为子孙后代:

将文件添加到与merger.append(open(filepath, 'rb'))的合并中,因为PyPDF在文件读取器/编写器中存在一些奇怪的内部问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70861245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档