如何使用子流程在python中使用pdfbox合并pdf?

2024-06-25 05:27:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我设法用PyPDF合并pdf,效果很好。 现在,我想使用pdfbox和python中的子进程合并pfd

这是我得到的,但它没有按预期工作

import subprocess
from subprocess import Popen

def merger(pdfList):
    try:
        output = "output.pdf"
        result = Popen(["java", "-jar", "pdfbox-app-2.0.19.jar", "PDFMerger", "\
        {}".format(pdfList), "{}".format(output)], stdout=subprocess.PIPE, \
        stderr=subprocess.PIPE)
        result_subprocess = result.communicate()
        if result.returncode != 0 or len(result_subprocess[1])>0:
            raise Exception(result_subprocess[1].decode())
        else:
            return True
    except Exception as e:
        print("Exception:",str(e))

if __name__ == '__main__':
    pdfList = ["33.pdf","4.pdf"]
    merger(pageList)

这是我遇到的一个例外

('Exception:', 'Usage: java -jar pdfbox-app-x.y.z.jar PDFMerger <inputfiles 2..n> <outputfile>\n\nOptions:\n <inputfiles 2..n> : 2 or more source PDF documents to merge\n <outputfile> 

Tags: importappformatoutputpdfexceptionjavaresult