Как создать pdf файл в python

03 апреля 2020 22:15
482
0

PDF один из самых популярных форматов документов. С ростом вычислительных способностей мобильных устройств, данный формат становиться все популярнее. Для создания документов существуют различные готовые решения, но бывают ситуации когда необходимо автоматизировать создание PDF. Рассмотрим как это можно сделать средствами языка python.

Существуют различные способы создания pdf файлов в python. Одним из лучшим можно назвать библиотеку pdfkit. Она позволяет переводить HTML-документы в формат PDF. Установить ее можно при помощи pip:

pip install pdfkit

В основе pdfkit лежит библиотека wkhtmltopdf. Поэтому для генерации документов с изображениями и прочими наворотами гипертекстовой разметки нужно также установить ее.

Pdfkit поддерживает три способа создания PDF из HTML:

1. По ссылке.

import pdfkit
pdfkit.from_url('https://cucumbler.ru', 'data.pdf')

2. Из файла

import pdfkit 
pdfkit.from_file('index.html', 'data.pdf')

3. Из текстовой строки

import pdfkit
pdfkit.from_string('Cucumbler.ru', 'data.pdf')

Продвинутовое использование pdfkit.

Мы может передавать параметры генерации страницы. Вот пример как указать размер A3 с отсупами по 0,5 дюйма с каждой стороны:

import pdfkit
options_dict = {
    'page-size': 'A3',
    'margin-top': '0.5in',
    'margin-bottom': '0.5in',
    'margin-right': '0.5in',
    'margin-left': '0.5in',
}
pdfkit.from_url('https://cucumbler.ru', 'data.pdf', options=options_dict)

Для просмотра всех возможных параметров рекомендую ознакомиться с документацией библиотеки wkhtmltopdf на ее официальном сайте или при помощи вызова

wkhtmltopdf -h 

В некоторых случаях может появляться ошибка wkhtmltopdf: cannot connect to X server. Это происходит потому, что по-умолчанию wkhtmltopdf собран с зависимостями xserver. Чтоб решить проблему нужно установить его из следующего источника:

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
sudo mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
sudo chmod +x /usr/local/bin/wkhtmltopdf

Похожие статьи