Попробуйте написать и открыть PDF в Python безуспешно

Это мой код на Python

import pydf

pdf = pydf.generate_pdf('<h1>Empresa Jucla</h1>')

with open('test_doc.pdf', 'wb') as f:
    f.write(pdf)

И ВЫЗЫВАЕТ ЭТУ ОШИБКУ:

C:\Users\Administrator\Envs\juppe\Scripts\python.exe C:/Users/Administrator/PycharmProjects/juppe/modulos_externos.py
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/juppe/modulos_externos.py", line 32, in <module>
    pdf = pydf.generate_pdf('<h1>Empresa Jucla</h1>')
  File "C:\Users\Administrator\Envs\juppe\lib\site-packages\pydf\wkhtmltopdf.py", line 145, in generate_pdf
    p = _execute_wk(*cmd_args, input=html.encode())
  File "C:\Users\Administrator\Envs\juppe\lib\site-packages\pydf\wkhtmltopdf.py", line 30, in _execute_wk
    return subprocess.run(wk_args, input=input, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  File "c:\users\administrator\appdata\local\programs\python\python38-32\lib\subprocess.py", line 489, in run
    with Popen(*popenargs, **kwargs) as process:
  File "c:\users\administrator\appdata\local\programs\python\python38-32\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "c:\users\administrator\appdata\local\programs\python\python38-32\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
OSError: [WinError 193] %1 is not a valid Win32 application

ПОЖАЛУЙСТА, ПОМОГИТЕ РАБОТАТЬ С Windows 10 x64

2 ответа

Проблема здесь в with open('test_doc.pdf', 'wb') as f: f.write(pdf)В вашем коде f должен быть параметром. По документации:

with open('test_doc.pdf', "wb") as f:
            pdf.write(f)

Обратите внимание, чем это отличается, например, от записи в CSV, где ваш синтаксис будет правильным.

Пробежался по этой проблеме только сейчас и провел большую часть дня в поисках решения, хотя на самом деле это было довольно просто ...

Итак, когда вы заходите на страницу pypi.org python-pdf (https://pypi.org/project/python-pdf/), вы сразу получаете следующую информацию от разработчика пакета:

«Если вы используете другую ОС или другую архитектуру, ваш опыт может отличаться, вполне вероятно, что вам придется предоставить свой собственный двоичный файл wkhtmltopdf и указать pydf на него, установив переменную среды WKHTMLTOPDF_PATH».

Итак, в основном python-pdf подготовлен для Linux.

Что вам нужно сделать: после установки пакета python-pdf вам просто нужно получить доступ к его каталогу, перейти в bin и удалить файл там (в основном мой был здесь: C:\Users\Diogo Almeida\anaconda3\Lib\ сайт-пакеты \pydf\bin).

После удаления этого файла просто перейдите на страницу загрузки wkhtmltopdf(https://wkhtmltopdf.org/downloads.html) и загрузите наиболее подходящий файл для вашей ОС. Установите exe в любом месте, и после его завершения вам нужно будет только получить доступ к каталогу, созданному установщиком, и вырезать файл в папке bin с именем «wkhtmltopdf» (который также является exe) и вставить его обратно на C:\Users\Diogo Almeida\anaconda3\Lib\site-packages\pydf\bin.

Перейдите в свой файл py и снова запустите код :)

Надеюсь, это решит и вашу проблему!

Другие вопросы по тегам