Html to pdf linux console

Генерация документов в doc, excel, pdf и других форматах на сервере

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

Я буду не многословен и сразу скажу, что речь идет о конвертере, встроенном в пакет LibreOffice. Вы можете запустить конвертацию из консоли, чтобы увидеть как это работает:

Эта команда конвертирует файл html.html в pdf файл. Количество поддерживаемых форматов впечатляет.

Выгода от использования такого инструмента очевидна. Вместо того, чтобы писать код для генерации документов в каждом из нужных форматов, просто создаем обычное html-представление. Далее сгенерированную страницу прогоняем через конвертер.

Запуск конвертации из PHP

Для установки конвертера на сервере придется установить пакет libreoffice-core:

Чтобы было удобно работать с утилитой из PHP, я написал обертку.

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

Для работы с оберткой подключаем ее к своему проекту через composer:

Использовать ее можно так:

В результате будет сформирован docx файл. Больше примеров можно найти на гитхабе.

Разумеется, в качестве бонуса можно запускать конвертацию в другую сторону — из doc в html и отображать содержимое офисных документов в браузере. Качество конвертации будет не всегда на высоте, но для каких-то случаев вполне подойдет.

Несколько граблей

Будет полезно рассказать про несколько особенностей, с которыми я столкнулся при работе с этой утилитой.

1. Применение CSS стилей. При преобразовании html в нужный формат имейте ввиду, что такая запись воспринимается корректно:

А такие записи будут обработаны точно так же, как если бы class мы совсем не указали:

2. При преобразовании html в нужный формат не всегда срабатывают описания стилей и иногда приходится экспериментировать, чтобы заработало. Например, так не работает:

Читайте также:  Мой фотопоток для windows

Но так работает:

3. Одно и то же преобразование можно выполнять с помощью разных конвертеров. При этом результат будет существенно отличаться. Если у вас на выходе получится не очень красивый документ, попробуйте принудительно задать используемый модуль, например:

4. Можно ли настроить ширину строк в таблице — для меня пока загадка. И в целом со стилизацией таблицы при преобразовании html в docx или pdf у меня возникли затруднения. Поэтому на мой взгляд подход трудно будет применять для генерации сложных печатных форм, таких как счет-фактура.

Источник

Wkhtmltopdf — умная утилита для конвертирования веб-страниц в PDF в Linux

Оригинал: Wkhtmltopdf – A Smart Tool to Convert Website HTML Page to PDF in Linux
Автор: Ravi Saive
Дата публикации: 28 января 2017 года
Перевод: А. Кривошей
Дата перевода: февраль 2018 г.

Wkhtmltopdf — простая и эффективная утилита командной строки с открытым исходным кодом, которая позволяет пользователю конвертировать любую веб-страницу в документ PDF или изображение (jpg, png и т. д.).

Wkhtmltopdf написана на C ++ и распространяется под лицензией GNU/GPL (General Public License). Она использует механизм рендеринга WebKit для преобразования веб-страниц в PDF без потери качества. Это действительно очень полезное и заслуживающее доверия решение для создания и хранения снимков веб-страниц в режиме реального времени.

Особенности Wkhtmltopdf

— открытый исходный код, кроссплатформенная утилита;
— преобразование любых веб-страниц в файлы PDF с использованием движка WebKit;
— опции для добавления верхних и нижних колонтитулов;
— опция генерации таблицы содержимого (TOC);
— обеспечивает конвертирование в пакетном режиме;
— поддержка PHP или Python через привязки к libwkhtmltox.

В этой статье мы покажем вам, как установить программу Wkhtmltopdf в Linux из исходного кода.

Установка Evince (программа для просмотра PDF)

Давайте сначала установим программу evince для просмотра PDF в Linux.

Скачивание исходного кода Wkhtmltopdf

Загрузите исходные коды wkhtmltopdf для вашей архитектуры Linux, с помощью команды Wget, также вы можете загрузить последнюю версию на странице загрузки wkhtmltopdf.

Для 64-битных систем

Для 32-битных систем

Установка Wkhtmltopdf в Linux

Распакуйте файлы в текущую рабочую директорию с помощью команды tar.

В 64-битной системе

В 32-битной системе

Установите wkhtmltopdf в директорию /usr/bin, чтобы ее можно было запускать из любого места.

Как использовать Wkhtmltopdf?

Здесь мы рассмотрим, как конвертировать HTML-страницы в PDF, верифицировать информацию и просматривать созданные файлы с помощью программы evince.

Конвертирование HTML-страницы в формат PDF

Для преобразования веб-страницы в PDF, выполните приведенную ниже команду. Он конвертирует указанную веб-страницу в файл 10-Sudo-Configurations.pdf в текущем рабочем каталоге.

Проверка сгенерированного файла PDF

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

Просмотр информации о сгенерированном файле PDF

Чтобы просмотреть информацию о созданном файле, воспользуйтесь следующей командой:

Читайте также:  Диск 100 процентов windows 10 решение при загрузке

Просмотр сгенерированного файла PDF

Давайте взглянем на содержимое созданного нами файла с помощью программы evince:

Пример созданного файла

В моей Linux Mint 17 выглядит отлично.

Создание таблицы содержимого (Table Of Content) файла PDF

Для создания таблицы содержимого PDF-файла используется опция toc.

Для проверки TOC созданного файла снова используем программу evince:

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

Источник

Convert html to pdf with Linux

Written by Guillermo Garron
Date: 2010-10-07 10:36:30 00:00

When you may need to convert a complete web page in html to a pdf file, Linux can help you.

We will need two tools:

  • wget — To download the complete page, including css, and others
  • wkhtmltopdf — To make the real conversion from html to pdf

You should be able to install both of them using your package manager.

To be able to convert the html to pdf, we will follow a two stage process.

First step, download the web page in html

To do that enter this command:

I will first create a folder to store the page, so.

Then download the web page:

That will create a structure like this:

There you will find the file, new-branch-on-debian-1.html

Second step, convert the html file to pdf file

Enter into the folder where the html file is.

Convert the file.

Using this format

wkhtmltopdf [html file] [pdf file]

That is it, you now have converted a complete html file including format, css, etc. to a pdf file, that you can send by email, archive, or anything you want.

Note: If the page you are downloading does not have .html extension you may get errors, to solve that, just mv (rename) the file to have an .html extension. Now a days, most of the pages does not have .html extensions.

If you enjoyed the article, please share it

Источник

Convert HTML Page To a PDF Using Open Source Tool [ Linux / OS X / Windows ]

D o you need a simple open source cross-platform command line tool that converts web pages and HTML to a PDF file? Look no further, try wkhtmltopdf.

From the project home page:

Simple shell utility to convert html to pdf using the webkit rendering engine, and qt. Searching the web, I have found several command line tools that allow you to convert a HTML-document to a PDF-document, however they all seem to use their own, and rather incomplete rendering engine, resulting in poor quality. Recently QT 4.4 was released with a WebKit widget (WebKit is the engine of Apples Safari, which is a fork of the KDE KHtml), and making a good tool became very easy.

Software features

  1. Cross platform.
  2. Open source.
  3. Convert any web pages into PDF documents using webkit.
  4. You can add headers and footers.
  5. TOC generation.
  6. Batch mode conversions.
  7. Can run on Linux server with an XServer (the X11 client libs must be installed).
  8. Can be directly used by PHP or Python via bindings to libwkhtmltox.
Читайте также:  Windows live 2012 не удалось отправить сообщение

A note about Debian / Ubuntu Linux user

You can install wkhtmltopdf using apt-get command:
$ sudo apt-get install wkhtmltopdf
$ sudo ln -s /usr/bin/wkhtmltopdf /usr/local/bin/html2pdf

Sample outputs:

Install wkhtmltopdf on MacOS unix

First, install Homebrew on macOS and then type the following brew command:
$ brew install wkhtmltopdf
OR
$ brew cask install wkhtmltopdf

Источник

Command Center

#!/bin/GREPing a ‘[programmer][sysadmin]’ with Killer Skillz

Tuesday, February 7, 2012

convert html to pdf linux

In a previous post I wrote about using wkhtmltopdf for html to pdf conversion with Ruby and Rails.

As can by typical with components, moving them to production you hope will be straight forward but is often not. Such was the case for me on getting wkthmltopdf working on my Ubuntu Server 10.04 server from my Mac Leopard dev environment.

The first question was how to install wkhtmltopdf on the server. Since **I had not been successful** installing it on my own on my Mac (I used the PdfKit ruby gem to install it), it was not clear if I would succeed here.

I ended up finding that there is a package for wkhtmltopdf for Ubuntu:

This package did its work and it installed. It seemed too easy. And it was.

While wkhtmltopdf (v0.9.9) did install, I was soon getting the following and dreaded error:

The reason for this error is that the current incarnation of Web Kit requires a GUI. Hopefully this will change in the future.

After some research I found what looked like a solution:

Use Xvfb (‘X Virtual Frame Buffer’). Xvfb promised to create a lightweight, temporary situation that would trick wkhtmltopdf into running. Please excuse my un-technical and probably inaccurate description of what Xvfb does, but you get the point.

It worked great! At least until…. I discovered that those darned links in the converted document were not active. I could not find an answer for this, so kept googling. My sense was that this problem must have something to do with running wkhtmltopdf through xvfb.

I ended up being right, and the solution was to use a patched QT in lieu of xvfb.

So I decided to try installing the static binary of wkhtmltopdf as follows:

  1. Uninstall the wkhtmltopdf package:
  2. (in usr/local/bin)
  3. (in usr/local/bin)

This showed me that a certain linux source file was missing and led to resolving the problem. In short, if one of the binaries does not work, try the other.

Once I got this installed everything worked, links were rendering and the client happy.

Источник

Оцените статью