Python сохранить веб страницу как pdf

от admin

Сохранить HTML как PDF в Python

HTML — самый простой и популярный язык для веб-разработки. Он лег в основу многих языков. Python поддерживает создание подключений и работу с веб-сайтами.

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

В этом руководстве мы сохраним веб-страницу HTML в формате PDF с помощью Python.

Используйте API wkhtmltopdf с Pdfkit для сохранения HTML как PDF с помощью Python

Wkhtmltopdf — это набор инструментов с открытым исходным кодом, которые могут преобразовывать веб-страницу HTML в PDF. Мы используем модуль pdfkit для работы с этим в Python. Функции этого модуля могут работать на одной или нескольких веб-страницах и сохранять их в виде файла PDF.

Мы можем читать контент прямо с URL-адреса веб-страницы или HTML-файла, сохраненного на устройстве. Функция from_url () читает контент из URL, а функция from_file () читает из файла.

Имя и путь к файлу можно указать в функции.

См. Следующий код, чтобы увидеть их использование

Мы также можем сохранить это содержимое в переменной, указав в функции False вместо имени PDF.

Не забудьте установить wkhtmltopdf с официального сайта перед использованием этого метода.

Используйте модуль weasyprint для сохранения HTML как PDF с помощью Python

Модуль weasyprint используется для преобразования веб-страниц в форматы документов. Мы используем функцию HTML, чтобы прочитать URL-адрес и сохранить его в формате PDF с помощью функции write_pdf ().

Перед использованием weasyprint необходимо установить многие другие модули и функции, поэтому не рекомендуется его использовать.
Кроме того, Python 2 удалил поддержку этого модуля.

Используйте модуль PyQT для сохранения HTML как PDF с помощью Python

Модуль PyQT имеет широкий спектр функций для разработки графического интерфейса и других функций. Мы можем вручную прочитать URL-адрес веб-страницы HTML и преобразовать его в PDF, используя различные функции.

См. Следующий код.

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

Создание PDF из HTML шаблона с помощью Python

Довольно часто возникает необходимость сгенерировать PDF файл скриптом на Python, например у меня недавно возникла такая задача:

Необходимо добавить в систему управления предприятием функционал формирования дипломов для наград сотрудников в виде PDF файлов, чтобы можно было их распечатать или послать по почте.

Порядок работы должен быть таким:

  • Менеджер, через веб-форму, вводит необходимые данные (имя сотрудника, должность и т.п.);
  • Далее он выбирает шаблон диплома (шаблоны заранее подготавливаются в системе);
  • Получает сформированный PDF файл.

Погуглив нашел для себя несколько способов решить задачу:

1. Использовать Python библиотеку для формирования PDF, например reportlab;

2. Сначала сформировать HTML страницу с помощью какого-нибудь шаблонизатора, а потом уже конвертировать HTML в PDF.

Первый вариант мне показался сложноватым из-за форматирования, нужно будет рисовать и позиционировать каждый элемент шаблона используя код python. По этой же причине в будущем будут сложности с поддержкой шаблонов.

Я выбрал второй вариант, поскольку HTML шаблон для моей задачи был простой и не должно было возникнуть сложности в его конвертации в PDF. В качестве шаблонизатора, я использовал Jinja

Для конвертации HTML в PDF я использовал Python-PDFKit (для его работы в вашу систему необходимо установить wkhtmltopdf).

Чтобы показать пример, я максимально упрощу задачу. Пусть нам необходимо, чтобы скрипт брал имя пользователя из переменной и подставлял его в HTML шаблон, а дальше мы бы получали PDF файл с текстом «Привет <имя пользователя>»!

Для начала установим все необходимое:

pip install pdfkit

pip install Jinja2

Так же необходимо скачать и установить в систему wkhtmltopdf.

Для этой заметки, я устанавливать не стал, а скачал portable версию для Windows и распаковал ее в D:\wkhtmltox (этот путь понадобится в дальнейшем).

Создаем шаблон для формирования PDF

Для нашей задачи HTML шаблон будет максимально примитивный, создадим файл pdf_template.html:

Здесь name — это переменная, которую мы будем передавать в шаблон.

Читать:
Как читать структуры из файла c

Теперь нужно написать код python, который сгенерирует html шаблон. Как я уже писал мы используем шаблонизатор Jinja.

Создадим файл pdf.py:

Сейчас в переменной pdf_template генерируется HTML шаблон:

Осталось сделать из него пдф.

Создаем PDF используя pdfkit

Осталось добавить к нашему скрипту пару строк и уже можно получить готовый пдф файл по нашему шаблону:

Сначала импортируем pdfkit:

И одной строчкой сформируем pdf:

Теперь, если выполнить скрипт, в папке появиться файл out.pdf созданный по нашему шаблону.

Поскольку я скачал portable версию wkhtmltopdf и пути к нему нет в переменной PATH, код нужно немного изменить, добавив путь к wkhtmltopdf.exe:

config = pdfkit.configuration(wkhtmltopdf=r’D:\wkhtmltox\bin\wkhtmltopdf.exe’)

pdfkit.from_string(pdf_template, ‘out.pdf’, configuration=config)

Итоговый код выглядит так:

smiley

На этом все

Python – Convert HTML Page to PDF

PDF is one of the most used digital format to save or transfer documents. In this article, we will learn how to convert HTML page to PDF.

What additional libraries or software do we need?

We will use pdfkit library and wkhtmltopdf.

Install pdfkit

To install pdfkit, run the following pip command.

Run Install pdfkit library

Install wkhtmltopdf

Ubuntu or Debian users can install wkhtmltopdf using below apt-get command.

Provide the password if prompted.

Windows users can download wkhtmltopdf from this official github repository wkhtmltopdf. The file size would be around 25MB and takes a moment to download.

Once downloaded, double click on the binary file and continue with the installation. It would be mostly installed at the path C:\Program Files\wkhtmltopdf . We should add bin folder to the system PATH variable in Environment Variables. For example, C:\Program Files\wkhtmltopdf\bin .

Add wkhtmltopdf to Path Environment Variable

Adding wkhtmltopdf/bin to Path environment variable.

Restart the command prompt, if you are running the python program using command prompt python command for the Path to take effect.

Example 1: HTML to PDF using URL

Now that the environment is setup, following is a simple example to convert HTML to PDF, where HTML is downloaded from a URL. We use the function from_url().

The converted PDF file is saved to the current path in the command prompt or terminal.

Output pdf file would look like

Example 2: Convert HTML to PDF from Local File

If your HTML file is stored locally, you can use from_file() function and convert the local HTML file to PDF.

Example 2: Convert HTML String to PDF

If your HTML data is stored in a Python variable, you can use from_string() function and convert the HTML string to PDF.

Run

Summary

We have successfully converted a HTML data to PDF. We have considered HTML data to be from a URL, local file or a string.

How To Convert Local html files Into PDF Using Python

In this article, you will learn how to use 3modules to automate the boring stuff.

Before pasting the code to your python file, please make sure you have installed the pdfkit (pip install pdfkit) and install wkhtmltopdf.

Image that you just download lots of articles from your favorite Data Science Blog in *.html file, and you want to combine them into a PDF file.

Maybe you would try to copy all the texts and paste it to Microsoft Word 2016 and save it as .PDF.

That’s not a bad idea right?

If you have 100+ articles? I think you guys don’t want to spend so much time pasting the texts, it’s boring.

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