Попробуйте написать и открыть 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 и снова запустите код :)
Надеюсь, это решит и вашу проблему!