Преобразование HTML в PDF в Python

Что такое хороший метод для преобразования файла строки HTML в PDF? Я пытаюсь создать простой инструмент, который создает отчет в формате PDF с использованием некоторых пользовательских данных и шаблона HTML. Я хочу распространить этот инструмент, чтобы другие сотрудники могли его использовать.

Прямо сейчас я пытаюсь использовать pdfkit и wkhtmltopdf. Проблема в том, что я могу заставить этот код работать только когда я указываю путь к файлу wkhtmltopdf.exe. Когда я упаковываю код с помощью PyInstaller, другие пользователи не смогут использовать программу, потому что у них нет файла шаблона HTML или пути к wkhtmltopdf. Любые идеи о том, как решить эту проблему или есть какие-либо альтернативные пакеты / методы Python, которые я должен использовать?

1 ответ

Решение

Если вы хотите упаковать шаблон HTML в свой модуль и используете setuptools Вы можете включить любые другие файлы с парой изменений:

  1. Создайте файл с именем MANIFEST.in в вашей базовой директории модуля
  2. Добавьте все файлы, которые вы хотите включить, вот так: include <path/to/file/in/module>
  3. В setup.py добавлять include_package_data=True в setup()

Внесение этих изменений должно позволить вашему модулю включить ваш шаблон и позволить другим модулям преобразовать его в PDF.

Если у вас есть проблемы с путями в модуле, убедитесь, что вы используете абсолютные пути для ссылок на другие файлы. Я бы предложил использовать встроенный os Модуль для построения пути, который работает для любого пользователя. Например: os.path.abspath("path/to/my/file")

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