Разумное автоматическое преобразование HTML в PDF (в среде UNIX / Linux) [закрыто]


16

Есть ли способ автоматически генерировать PDF-документы из HTML-файлов в Linux, где PDF предлагает некоторый разумный уровень сходства с входным файлом?

Инструмент командной строки, в отличие от интерактивного графического интерфейса, является ключевым.

Я пробовал htmldocи некоторых родственников, конечно. Но эти инструменты безнадежно каменного века; htmldocвообще не поддерживает CSS В наши дни вы не найдете много HTML-документов, в которых нет хотя бы некоторых стилей CSS. На самом деле меня не волнуют глупые эффекты или мелкие украшения, но проблема в том, что CSS является основой большинства макетов в наши дни; не так много людей используют 6 слоев вложенных таблиц больше. Таким образом, если инструмент преобразования вообще не разбирается в CSS, дело не только в том, что «документ выглядит не совсем правильно»; скорее всего, он вообще не соответствует минимальному стандарту юзабилити.

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

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

Заранее спасибо!

Ответы:


7

Вы видели wkhtmltopdf ? Не могу сказать, насколько хорошо это работает лично, но кажется, что именно то, что вам нужно. Единственная проблема может заключаться в том, что с этим и любыми решениями «автоматизации браузера» он будет использовать таблицу стилей печати, а не экранную, поэтому PDF может быть не совсем тем, что вы видите на экране.


Что такое таблица стилей печати? Я должен быть вне связи с последними и лучшими новинками из вселенной CSS.
Алексей Балашов

В этом нет ничего нового, это стало практичным только для большинства веб-сайтов, когда они переключились на CSS для разметки вместо таблиц. Попробуйте alistapart.com/articles/goingtoprint или webcredible.co.uk/user-friendly-resources/css/… для ознакомления.
Роберт


2

XHTML2PDF - это набор инструментов Python, который включает в себя как скрипты командной строки, так и библиотеку Python (если вы хотите встроить это в нечто большее, не выделяя сценарий.) Он поддерживает HTML / XHTML и CSS, с дополнительными стилями CSS, специфичными для поставщика. настроить форматированный вывод (например, номера страниц, поток абзацев и т. д.)

Я лишь немного использовал его для пакетной обработки нескольких документов HTML, но он работал нормально, и его набор функций кажется мне всеобъемлющим. Руководство скрыто на демонстрационной странице, но само по себе является хорошим примером преобразования документа HTML в PDF.

У меня был хороший набор ссылок на примеры «до» и «после», но я только что создал свою учетную запись, и, видимо, только спамеры поместили более одной ссылки в своем первом посте :-p


1

Я хотел сгенерировать PNG из HTML-страниц из командной строки. Где-то я нашел этот скрипт ruby, который использует mozembed для создания скриншота. Вы можете удалить линию шкалы, если вы не хотите, чтобы она масштабировалась.

Единственная проблема, которую я вижу, состоит в том, что страница действительно появляется на экране на мгновение ...


Хм да Последняя часть кажется немного убийственной. Это должно быть встроено в чисто серверную часть; нет дисплея головы или что-нибудь. Есть ли способ сделать это?
Алекс Балашов

0

попробуйте dompdf, он отлично работает из командной строки де и на своих примерах он работает с любым видом HTML


0

PrinceXML. Может справиться с CSS просто отлично. Доступны версии для Linux, Windows, Mac OS X. AFAICS, это также технология вывода PDF из Google Документов. Но обратите внимание: это платное ПО.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.