Python PDF 合并 Windows "Send To" 上下文菜单

Python PDF Merger with Windows "Send To" context menu

我正在尝试使用 Windows "Send To" 上下文菜单将一些 PDF 文件解析为 PyPDF2 合并功能。

作为旁注: 当我将合并应用到文件夹并且 运行 时,合并工作正常 os.listdir('folder')

我试图查明问题所在,但出现了 'EOF' 错误。 pdf 文件有一个有效的 EOF 标记,我已经用多个 PDF 测试了代码。

代码:

import sys
import os
from PyPDF2 import PdfFileMerger


def pdfMerger(files, loc):
    merger = PdfFileMerger()
    for pdf in files:
        try:
            merger.append(open(pdf, 'rb'))
        except Exception as E:
            input(E)
    with open(loc + '/combined_pdf.pdf', 'wb') as pdf_out:
        merger.write(pdf_out)


if __name__ == '__main__':
    if len(sys.argv) > 1:
        pdfMerger(sys.argv, os.path.split(sys.argv[1])[0])

有人可以告诉我我做错了什么吗? 感谢您的帮助!

没关系,想通了:

#!/usr/bin/python3

'''
Description:
Merge PDF files in to 1 pdf file in source directory.
'''

import os
import sys
try:
    from PyPDF2 import PdfFileMerger
except ImportError as missingModule:
    print('could not import PyPDF2', missingModule)


def checkType(arg):
    # check if given argument is a directory
    if os.path.isdir(arg[1]):
        # distil the source path
        arg = str(arg[1])
        # create a list with only pdf files
        pdf_files = [os.path.join(arg, f) for f in os.listdir(arg) if f.endswith('pdf')]
        src_loc = arg
        return pdf_files, src_loc
    # if arguments are pdf files, distil source folder and pdf files
    src_loc = os.path.split(sys.argv[1])[0]
    pdf_files = sys.argv[1:]
    return pdf_files, src_loc


def pdfMerger(args):
    files = args[0]
    loc = args[1]
    merger = PdfFileMerger(strict=False)
    for pdf in files:
        try:
            merger.append(open(pdf, 'rb'))
        except Exception as E:
            input(E)
    with open(loc + '/combined_pdf.pdf', 'wb') as pdf_out:
        merger.write(pdf_out)


if __name__ == '__main__':
    if len(sys.argv) < 1:
        print('Usage: Python PFM.py [directory] / [file, file, etc.]')
    pdfMerger(checkType(sys.argv))