Бесплатная библиотека Python для преобразования HTML и CSS в PDF
Библиотека Python с открытым исходным кодом позволяет генерировать PDF-документы из HTML. Она поддерживает продвинутую разметку страниц, рендеринг изображений и таблиц, добавление пользовательских шрифтов, заголовков/нижних колонтитулов и многое другое.
Что такое библиотека XHTML2PDF?
В мире веб‑разработки необходимость генерировать PDF‑документы из HTML‑контента является распространённым требованием. Будь то создание счетов‑фактур, отчётов или любого другого типа печатных документов, наличие надёжного инструмента для выполнения этой конвертации имеет решающее значение. Здесь на помощь приходит XHTML2PDF — мощная открытая библиотека Python. html2pdf (ранее известный как pisa) — это чисто‑Python библиотека, преобразующая HTML (включая XHTML) и CSS в PDF‑документы. Она построена на основе инструментария ReportLab и html5lib, с дополнительной поддержкой PyPDF. Платформенно‑независимая и доступная, она позволяет разработчикам быстро и эффективно превращать веб‑контент в печатные PDF‑файлы.
XHTML2PDF наполнен функциями, которые делают его универсальным инструментом для генерации PDF. Он поддерживает HTML5 и CSS 2.1, бесшовную интеграцию с Django, мощный интерфейс командной строки, пользовательские теги, специфичные для PDF, продвинутую разметку страниц и стилизацию, лучшую поддержку таблиц и изображений и т.д. Что делает XHTML2PDF столь привлекательным для разработчиков, так это его простота и гибкость. Если вы умеете писать HTML и CSS, вы сможете начать генерировать PDF с этой библиотекой в кратчайшие сроки. Это чистая библиотека Python, что означает её независимость от платформы и возможность работы на любой операционной системе, поддерживающей Python. Также важно знать ограничения библиотеки: она не поддерживает полностью спецификацию CSS и не исполняет JavaScript.
Начало работы с XHTML2PDF
XHTML2PDF можно установить с помощью pip, следующие команды установят из Python wheel, если он доступен для вашей платформы.
Установите XHTML2PDF через pip
pip install xhtml2pdf Клонировать репозиторий через GitHub
git clone https://github.com/xhtml2pdf/xhtml2pdf.git Также возможно установить её вручную; скачайте последние файлы релиза напрямую из репозитория GitHub.
Преобразование HTML и CSS в PDF с помощью Python
Основная функция открытой библиотеки XHTML2PDF — разбирать HTML и CSS (включая встроенные стили) и точно отображать их в PDF‑документе. Она поддерживает широкий набор HTML‑тегов и CSS‑свойств, что обеспечивает значительную гибкость дизайна. Поддерживаются такие возможности, как разрывы страниц, колонтитулы, поля и размер страниц, внедрение шрифтов и т.д. Ниже приведён простой пример, показывающий, как разработчики могут преобразовать HTML‑контент в PDF‑файл с помощью кода на Python.
Как преобразовать HTML‑контент в PDF‑файл с помощью Python?
from xhtml2pdf import pisa
# HTML‑контент для конвертации
html_content = """
Привет, мир!
Это мой первый PDF, сгенерированный с помощью XHTML2PDF.
"""
# Имя выходного PDF‑файла
output_filename = "hello_world.pdf"
# Откройте выходной файл в бинарном режиме записи
with open(output_filename, "w+b") as pdf_file:
# Create the PDF
pisa_status = pisa.CreatePDF(
html_content, # the HTML to convert
dest=pdf_file) # file handle to receive result
# Проверьте, успешно ли создан PDF
if not pisa_status.err:
print(f"Successfully created PDF: {output_filename}")
else:
print(f"Error creating PDF: {pisa_status.err}")
Продвинутая компоновка страниц и поддержка пользовательских шрифтов
С библиотекой XHTML2PDF разработчики имеют тонкий контроль над макетом страниц PDF. Они могут задавать размер страницы, поля и ориентацию с помощью правила CSS @page. Разработчики также могут создавать пользовательские колонтитулы для своих документов. Более того, если необходимо использовать определённые шрифты в PDF, библиотека позволяет внедрять пользовательские шрифты. Это особенно полезно для брендинга и обеспечения единообразной типографии во всех документах.
Отображение изображений и таблиц PDF через библиотеку Python
Открытая библиотека XHTML2PDF предоставляет надёжную поддержку рендеринга таблиц и изображений в ваших PDF. Вы можете стилизовать таблицы с помощью CSS, а для изображений контролировать их размер и выравнивание. Библиотека может легко и корректно разрешать и встраивать изображения, шрифты и другие статические ресурсы, что критически важно для создания автономных PDF. Вы можете автоматически генерировать оглавление, просто добавив тег
Поддержка HTML5 и CSS 2.1
Если вы знакомы с HTML и CSS, воссоздание PDF с оформлением становится интуитивным — без новой кривой обучения. Библиотека XHTML2PDF обладает отличной поддержкой современных веб-стандартов, включая HTML5 и CSS 2.1, а также частичной поддержкой свойств CSS 3. Это означает, что вы можете использовать знакомые HTML‑теги и свойства CSS для структуры и оформления ваших PDF‑документов, так же как и для веб‑страницы.