Html code to pdf python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Pure Python HTML/CSS to PDF converter

License

zulumarketing/html2pdf

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.rst

HTML/CSS to PDF converter based on Python

xhtml2pdf is a html2pdf converter using the ReportLab Toolkit, the HTML5lib and pyPdf. It supports HTML 5 and CSS 2.1 (and some of CSS 3). It is completely written in pure Python so it is platform independent.

The main benefit of this tool that a user with Web skills like HTML and CSS is able to generate PDF templates very quickly without learning new technologies.

Python, virtualenv and dependencies

  1. Install Python 2.6.x or 2.7.x. Installation steps depends on your operating system.
  2. Install Pip, the python package installer:
sudo pip install virtualenv
virtualenv --distribute xhtml2pdfenv --python=python2
source xhtml2pdfenv/bin/activate
pip install -r requirements.txt

Some simple demos of how to integrate xhtml2pdf into a Python program may be found here: test/simple.py

Development for this software happend on github, and the main fork is currently at https://github.com/chrisglass/xhtml2pdf

Contributions are welcome in any format, but using github’s pull request system is very highly preferred since it makes review and integration much easier.

Two different test suites are available to assert xhtml2pdf works reliably:

    Unit tests. The unit testing framework is currently minimal, but is being improved on a daily basis (contributions welcome). They should run in the expected way for Python’s unittest module, i.e.:

nosetests --with-coverage (or your personal favorite)

Copyright 2010 Dirk Holtwick, holtwick.it

Licensed under the Apache License, Version 2.0 (the «License»); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an «AS IS» BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

Pure Python HTML/CSS to PDF converter

Источник

Рецепты Python: преобразование из HTML и URL в PDF и PS

Для приготовления преобразования из HTML и URL в PDF и PS нам понадобится сам python, генератор htmldoc и плагин pyhtmldoc. (Я дал ссылки на свои форки, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальный репозитории. Можно также воспользоваться готовым образом.)

Для начала импортируем плагин командой

Для преобразования из HTML и URL в PDF и PS используем команды

 pdf = file2pdf('file.html'.encode(), None) # преобразуем FILE в PDF ps = file2ps('file.html'.encode(), None) # преобразуем FILE в PS file2pdf('file.html'.encode(), 'file.pdf') # преобразуем FILE в PDF и сохраняем результат в файл file2ps('file.html'.encode(), 'file.pdf') # преобразуем FILE в PS в PDF и сохраняем результат в файл pdf = file2pdf(['file1.html'.encode(), 'file2.html'.encode()], None) # преобразуем несколько FILE в PDF ps = file2ps(['file1.html'.encode(), 'file2.html'.encode()], None) # преобразуем несколько FILE в PS file2pdf(['file1.html'.encode(), 'file2.html'.encode()], 'file.pdf') # преобразуем несколько FILE в PDF и сохраняем результат в файл file2ps(['file1.html'.encode(), 'file2.html'.encode()], 'file.pdf') # преобразуем несколько FILE в PS в PDF и сохраняем результат в файл pdf = html2pdf('Здравствуй, мир!'.encode(), None) # преобразуем HTML в PDF ps = html2ps('Здравствуй, мир!'.encode(), None) # преобразуем HTML в PS html2pdf('Здравствуй, мир!'.encode(), 'file.pdf') # преобразуем HTML в PDF и сохраняем результат в файл html2ps('Здравствуй, мир!'.encode(), 'file.pdf') # преобразуем HTML в PS в PDF и сохраняем результат в файл pdf = html2pdf(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], None) # преобразуем несколько HTML в PDF ps = html2ps(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], None) # преобразуем несколько HTML в PS html2pdf(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], 'file.pdf') # преобразуем несколько HTML в PDF и сохраняем результат в файл html2ps(['Здравствуй, мир!'.encode(), 'До свидания, мир!'.encode()], 'file.pdf') # преобразуем несколько HTML в PS в PDF и сохраняем результат в файл pdf = url2pdf('https://google.com'.encode(), None) # преобразуем URL в PDF ps = url2ps('https://google.com'.encode(), None) # преобразуем URL в PS url2pdf('https://google.com'.encode(), 'file.pdf') # преобразуем URL в PDF в PDF и сохраняем результат в файл url2ps('https://google.com'.encode(), 'file.pdf') # преобразуем URL в PS в PDF и сохраняем результат в файл pdf = url2pdf(['https://google.com'.encode(), 'https://google.ru'.encode()], None) # преобразуем несколько URL в PDF ps = url2ps(['https://google.com'.encode(), 'https://google.ru'.encode()], None) # преобразуем несколько URL в PS url2pdf(['https://google.com'.encode(), 'https://google.ru'.encode()], 'file.pdf') # преобразуем несколько URL в PDF в PDF и сохраняем результат в файл url2ps(['https://google.com'.encode(), 'https://google.ru'.encode()], 'file.pdf') # преобразуем несколько URL в PS в PDF и сохраняем результат в файл 

Источник

Создание 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 файл с текстом «Привет »!

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

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

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

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

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

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

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

from jinja2 import Environment, FileSystemLoader name = 'Александр' env = Environment(loader=FileSystemLoader('.')) template = env.get_template("pdf_template.html") pdf_template = template.render()

Сейчас в переменной 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)

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

from jinja2 import Environment, FileSystemLoader import pdfkit name = 'Александр' env = Environment(loader=FileSystemLoader('.')) template = env.get_template("pdf_template.html") pdf_template = template.render() pdfkit.from_string(pdf_template, 'out.pdf') # config = pdfkit.configuration(wkhtmltopdf=r'D:\wkhtmltox\bin\wkhtmltopdf.exe') # pdfkit.from_string(pdf_template, 'out.pdf', configuration=config) 

Категории

Свежие записи

Источник

Читайте также:  Js получение css свойства элемента
Оцените статью