PythonPDF: FileNotFoundError: [WinError 2] 系统找不到指定的文件

Posted

技术标签:

【中文标题】PythonPDF: FileNotFoundError: [WinError 2] 系统找不到指定的文件【英文标题】:PythonPDF: FileNotFoundError: [WinError 2] The system cannot find the file specified 【发布时间】:2021-09-03 03:37:37 【问题描述】:

当我使用 PDFJinja 的示例填充现有 PDF 文件中的表单字段时,我收到以下错误跟踪。

代码片段:

        dir_name = os.path.dirname("P:\\Project\\pdfjinja_services\\resources\\sample.pdf")
        template_pdf_file = os.path.join(dir_name, 'sample.pdf')
        template_pdf = PdfJinja(template_pdf_file, current_app.jinja_env)
        print(type(template_pdf))
        rendered_pdf = template_pdf(
            'firstName': 'Faye',
            'lastName': 'Valentine'   
        )
        output_file = os.path.join(dir_name, 'output.pdf')
        rendered_pdf.write(open(output_file, 'wb'))

错误:

Traceback (most recent call last):
File "P:\Professional\Python\CR\workspace\workspace-local\myplaybook\pdf_pdfjinja.py", line 10, in
rendered_pdf = template_pdf(
File "P:\Professional\Python\Softwares\python-3.9.6\lib\site-packages\pdfjinja.py", line 240, in call
filled = PdfFileReader(self.exec_pdftk(self.rendered))
File "P:\Professional\Python\Softwares\python-3.9.6\lib\site-packages\pdfjinja.py", line 212, in exec_pdftk
p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
File "P:\Professional\Python\Softwares\python-3.9.6\lib\subprocess.py", line 951, in init
self._execute_child(args, executable, preexec_fn, close_fds,
File "P:\Professional\Python\Softwares\python-3.9.6\lib\subprocess.py", line 1420, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

我正在使用 python-3.9.6 和 PDFJinja-1.1.0。 如果我缺少任何其他依赖项,请告诉我。

【问题讨论】:

请提供一个最小的独立示例来演示该问题。关键问题可能是调用p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE) 中的args 是什么。我的猜测是您缺少二进制文件,或者它不在您的搜索路径中。 感谢您回复@AllanWind。当我调试时,我可以看到为属性 args 传递了以下值- ['pdftk', 'P:/Project/pdfjinja_services/resources\\sample.pdf', 'fill_form', '-', 'output', '-'、'dont_ask'、'扁平化']。上面的代码示例是我的 POC 取自 https://github.com/rammie/pdfjinja/blob/master/examples/example.py。 进一步分析,我好像没有pdftk工具。这是 pdfjinja 的一种依赖。我会尝试安装并验证。 我已经尝试安装pdftk 并进行了测试。但仍然出现同样的错误。 请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example。 【参考方案1】:

您缺少一个二进制文件(每次更新 pdftk),或者该二进制文件不在您的搜索路径中。

【讨论】:

是的@Allan Wind。在环境路径中添加 pdftk 后,我可以毫无问题地执行上述代码。谢谢。

以上是关于PythonPDF: FileNotFoundError: [WinError 2] 系统找不到指定的文件的主要内容,如果未能解决你的问题,请参考以下文章

Python PDF/图像表重建选项

任何人都可以推荐一个支持 OpenType (.OTF) 的 Python PDF 生成器吗? [关闭]

PDF 转 PPTX

PDF 转 PPTX

django 动态生成PDF文件

裁剪后python pdf空白[重复]