Как создать PDF в Django с WeasyPrint

  1. Что такое WeasyPrint?
  2. Монтаж

Иногда нам нужно создать PDF-файлы, которые содержат информацию. Эта задача в Django проста благодаря библиотеке WeasyPrint . Итак, давайте поговорим об этой библиотеке и о том, как она используется.

Что такое WeasyPrint?

WeasyPrint - это механизм визуализации для HTML и CSS, который можно экспортировать в PDF . Он направлен на поддержку веб-стандартов для печати. WeasyPrint - это бесплатное программное обеспечение, доступное по лицензии BSD .

Монтаж

pip установить WeasyPrint

Чтобы показать использование этой библиотеки , мы создаем модель, которая содержит людей с 3 данными (имя, фамилия и адрес электронной почты). Идея состоит в том, чтобы создать PDF-файл , содержащий таблицу с данными всех людей. Мы начали!

# - * - coding: utf-8 - * - из .models import Person из django.http import HttpResponse из django.template.loader import render_to_string из weasyprint import HTML import tempfile def generate_pdf (request): "" "Создать PDF-файл." "" # Данные модели people = Person.objects.all (). Order_by ('last_name') # Rendered html_string = render_to_string ('bedjango / pdf.html', {'people': people}) html = HTML (string = html_string ) result = html.write_pdf () # Создание ответа HTTP-ответа = HttpResponse (content_type = 'application / pdf;') response ['Content-Disposition'] = 'inline; имя_файла = list_people.pdf 'response [' Content-Transfer-Encoding '] =' двоичный 'с tempfile.NamedTeilitaryFile (delete = True) в качестве вывода: output.write (результат) output.flush () output = open (output.name) , 'r') response.write (output.read ()) возвращает ответ от django.conf.urls, с которого импортируется URL. импортировать представления urlpatterns = [url (r '^ generate / pdf / $', views.generate_pdf, name = 'generate_pdf'),] <html> <head> <title> Test </ title> <style> h1 {text- выровнять: центр; } table {border: 1px solid; поле: 0 авто; ширина: 70%; } td, th {text-align: center; граница: 1px solid; } </ style> </ head> <body> <h1> Список людей </ h1> <таблица> <thead> <tr> <th> Фамилия </ th> <th> Имя </ th> < th> Электронная почта </ th> </ tr> </ thead> <tbody> {% для человека в людях%} <tr> <td> {{person.last_name}} </ td> <td> {{person. first_name}} </ td> <td> {{person.email}} </ td> </ tr> {% endfor%} </ tbody> </ table> </ body> </ html>

  1. Мы создаем очень простое представление для рендеринга и создаем http-ответ в нашем views.py. Очевидно, этот код можно разделить на слои для улучшения логики, но в моем случае я не выбрал этот вариант, поскольку это простой тест.
  2. Мы добавляем новый URL в urls.py, чтобы связать наше новое представление, которое будет генерировать PDF .

  3. Наконец, мы создаем HTML-шаблон для придания разметки и стиля PDF . Эта опция является одной из точек в пользу этой библиотеки, поскольку мы разрешаем использовать в качестве шаблонов html и css . Другие библиотеки pdf , не допускают эту опцию, а компоновка информации основана на расчете спредов и выравниваний , что очень неудобно.

  4. Как обычно, мы можем использовать теги django ( {% for%} , {% if%} и т. Д.). Мы проверяем результат .

Как вы можете видеть в 4 простых шагах , мы можем создать PDF очень быстро . Надеюсь, вам понравился этот пост. Я оставляю официальную библиотечную документацию ниже. Не стесняйтесь спрашивать!

http://weasyprint.readthedocs.io/en/latest/index.html

С уважением!

Похожие

Как создать почтовый сервер с помощью инструмента Plesk ™
Это руководство содержит информацию о том, как настроить и использовать инструмент Plesk в качестве почтового сервера на виртуальном сервере Windows, работающем в Virtualization Station. Что такое Plesk ™? Plesk ™ - это коммерческая платформа для онлайн-хостинга, которая предлагает панель управления, которая позволяет администраторам серверов управлять веб-сайтами, серверами электронной почты, базами данных, DNS-серверами и другими функциями с помощью веб-интерфейса пользователя.
Как выбрать хороший хостинг и что делать?
... сли домен является интернет-адресом, где вы можете найти свой веб-сайт в Интернете, то хостинг - это место на диске, на котором вы размещаете весь контент вашего веб-сайта: все его элементы конструкции, его содержимое, статьи и все необходимые мультимедиа: фотографии, графика и т.д. Хостинг - это отдельное пространство на сервере, то есть специальный диск, который постоянно доступен через интернет-соединение,
Разница между влажными, цифровыми и электронными подписями
Что вы представляете, когда слышите слово «подпись» 50 лет назад, возможно, у всех нас был один и тот же ответ, но сегодня «чернила на бумаге» - не единственный вариант авторизации документа или транзакции. Вот что вам нужно знать о трех основных категориях подписи (мокрые, цифровые и электронные подписи) и о том, как они способствуют (или препятствуют) бизнес-процессам. Что такое мокрая подпись? Мокрая подпись создается, когда человек физически помечает документ.
романо-номер
Как зациклить видео на YouTube
... что большинство видео на YouTube предназначены для просмотра только один раз, есть много видео, которые на самом деле стоит смотреть снова и снова, такие как любимые музыкальные клипы, детские шоу (родители это поймут) или фоновые видео. как камины или аквариумы. До недавнего времени, однако, не было собственного способа ставить видео на YouTube на «повтор» бесконечно. Сообщество YouTube решило эту проблему несколькими способами: создатели зацикливали видео на стороне редактирования
Все, что вам нужно знать о майнинге биткойнов
Как работает биткойн майнинг Откуда приходят биткойны? С бумажными деньгами правительство решает, когда печатать и распределять деньги. Биткойн не имеет центрального правительства. С биткойнами майнеры используют специальное программное обеспечение для решения математических задач и получают определенное количество биткойнов в обмен. Это обеспечивает разумный способ выпуска валюты,
Как настроить платежи Android Pay в Польше
... совершать мгновенные платежи с помощью вашего смартфона. Узнайте, как настроить платежи Android Pay, какие банки поддерживают эту услугу и какой смартфон вам нужен, чтобы воспользоваться этим. Платежи Android
Как быстро оптимизировать Windows для SSD
У вас есть SSD-накопитель, и вы хотите убедиться, что он будет работать без сбоев, быстро, без проблем? Есть несколько вариантов, которые стоит изменить после установки Windows на SSD. Теперь вы можете сделать это быстро и легко, используя SSD Fresh, который работает с Windows XP, Vista, 7, 8, 8.1 и 10.
Как заблокировать рекламу в Microsoft Edge
Сначала блокировка рекламы в Microsoft Edge была невозможна, но ситуация изменилась. Расширения AdBlock и uBlock Origin уже доступны для блокировки рекламы в браузере Edge. Как их использовать? Для многих пользователей возможность блокировки рекламы заключается в выборе браузера. Когда Microsoft
Объясненные порты и протоколы POP3, SMTP и IMAP
... чтой. Но вы когда-нибудь задавались вопросом, как это на самом деле работает? В этой статье мы узнаем, чем управляет этот сервис. Протоколы POP3 и IMAP используются для подключения к вашему поставщику электронной почты и получения электронной почты с помощью вашего почтового клиента, тогда как SMTP используется для отправки электронной почты. Почтовым клиентом может быть приложение, такое как Thunderbird, или веб-клиент,
Как создать CSR для сертификата Wildcard SSL в IIS 7?
Как мы знаем, что Wildcard SSL - это очень необходимый сертификат SSL для тех организаций, которые ведут свой бизнес на различных поддоменах. Установка сертификата с подстановочными знаками на IIS 7 требует определенного процесса, который следует выполнять с особой тщательностью. Однако перед установкой SSL-сертификата на сервере, подобном Microsoft IIS 7, лучше иметь

Комментарии

О за печенье Что такое печенье и какое отношение оно имеет к моей конфиденциальности?
Что такое супер-печенье и почему он опасен? Что такое супер-печенье и почему он опасен? Verizon был оштрафован за отслеживание клиентов с уникальным идентификатором заголовка (UIDH), также известным как «supercookie». Но что такое супер-печенье? И почему он хуже обычного печенья? Прочитайте больше
Шаг 1 - Что такое POP3 и что такое порты POP3?
Шаг 1 - Что такое POP3 и что такое порты POP3? POP3 (версия протокола 3 ) используется для связи с удаленным почтовым сервером и загрузки электронной почты в локальный почтовый клиент, такой как прогноз , Thunderbird, Windows Mail, Mac Mail и т. д. Обычно почтовый
Что такое карта Wi-Fi?
Что такое карта Wi-Fi? Это вопрос, на который вам нужно ответить, прежде чем вы сможете обновить свою систему, и ответ будет отличаться в зависимости от того, какой у вас компьютер. Параметры рабочего стола Начнем с самого простого: настольные ПК. На настольных компьютерах доступ к Wi-Fi (и иногда и к Bluetooth) обычно предоставляется в трех вариантах: Встроенный компонент на материнской плате PCI-карта, которая подключается к
Я не собираюсь останавливаться на этом так далеко, чтобы ответить на вопрос "Что такое операционная система?
Я не собираюсь останавливаться на этом так далеко, чтобы ответить на вопрос "Что такое операционная система?" Я довольно уверен, что у масс это есть; поэтому мы сосредоточимся только на этой конкретной операционной системе. Linux. И с учетом сказанного, позвольте мне погрузиться в ответ. Это действительно ядро Если вы зададите вопрос "Что такое Linux?" Пуристу они ответят: «Это модульное ядро, созданное Линусом Торвальдсом». Это не тот ответ, который
Что такое Flash Cart и зачем он мне нужен?
Что такое Flash Cart и зачем он мне нужен? Использование флеш-корзины - основа сегодняшнего урока. Флеш-корзина - это просто пользовательский USB-адаптер, разработанный для того, чтобы позволить вам подключать общую карту памяти microSD к вашему Nintendo DS. Это, если хотите, адаптер хранения, маскирующийся под законный
Nvidia RTX: что это такое и для чего оно нужно?
Nvidia RTX: что это такое и для чего оно нужно? RTX-карты от Nvidia - это новейшее поколение графических карт, которые постепенно преуспеют и заменят их нынешние графические карты GTX, в частности, серии GTX 10, такие как GTX 1060 и GTX 1080 ,
Что такое мобильные устройства?
Что такое мобильные устройства? Чтобы начать подготовку мобильной версии нашего сайта, мы должны задать себе вопрос «что такое мобильное устройство». По словам Google, мобильное устройство не является планшетом, поскольку благодаря большому дисплею может успешно отображать веб-сайт, подготовленный для настольных компьютеров. Тем не менее, это руководство относится и к ним, и к настольной версии. По словам Google, мобильные устройства, среди прочего Телефоны старшего
Что такое Android Pay?
Что такое Android Pay? Android Pay - это бесконтактные платежи, при которых мы платим комиссию с нашего телефона, а не с самой карты. Все делается с помощью специального приложения, в которое мы должны добавить реквизиты вашей платежной карты. С Android Pay мы можем совершать платежи в правильно отмеченных местах или онлайн через соответствующие мобильные приложения (например, Allegro или Uber поддерживают платежи Android Pay). Просто установите соответствующее приложение,
Но что такое винтажная мода?
Но что такое винтажная мода? Винтажная мода - это одежда, которой 20-100 лет, одежда, которая представляет эпоху, в которой она была сделана. Не все винтажные вещи носят. Вы также можете найти его новым, как мертвый товар или ручной работы, и верить этому или нет, есть коллекционеры, которые рассматривают эту одежду как сокровища. Как это связано с защитой окружающей среды? Ну, по данным Value Village, в Канаде на свалке оказывается
Что такое двойной стек?
Что такое двойной стек? При использовании двойного стека каждый публичный или частный сетевой адресный узел IPv4 работает параллельно с глобальным префиксом IPv6, то есть IPv4 и IPv6. Что такое Dual Stack Lite? Dual Stack Lite - это режим широкополосного соединения с глобальным префиксом IPv6 и NAT-адресом IPv4 операторского уровня, туннелирующий трафик IPv4 в пакетах IPv6. По сути, «двойной стек» означает, что IPv4 и IPv6 могут использоваться параллельно в
Что такое Mind Mapping (MM)?
Что такое Mind Mapping (MM)? Описание MM является популярным инструментом мозгового штурма и техникой обучения для визуальной организации идей и их взаимосвязей. Его можно использовать для графического упорядочения связей некоторой центральной концепции или проблемы с другими концепциями или проблемами в запоминающихся древовидных диаграммах. Он позволяет создавать, собирать, систематизировать и передавать понятные и интерактивные визуальные представления сложных идей, информации и данных.

Что такое WeasyPrint?
Что такое WeasyPrint?
Что такое Plesk ™?
Как выбрать хороший хостинг и что делать?
Что такое мокрая подпись?
Как их использовать?
Но вы когда-нибудь задавались вопросом, как это на самом деле работает?
Что такое супер-печенье и почему он опасен?
Что такое супер-печенье и почему он опасен?
Но что такое супер-печенье?