Мне нужно автоматически сгенерировать PDF-файл из существующего (X) HTML-документа. Входные файлы (отчеты) используют довольно простой табличный макет, поэтому поддержка действительно навороченных JavaScript / CSS материалов, вероятно, не требуется.
Поскольку я привык работать на Java, предпочтительнее решение, которое можно легко использовать в java-проекте. Однако оно должно работать только в системах Windows.
Один из способов сделать это, который осуществим, но не обеспечивает хорошего качества вывода (по крайней мере, из коробки), - это использовать CSS2XSLFO и Apache FOP для создания PDF-файлов. Проблема, с которой я столкнулся, заключалась в том, что, хотя CSS-атрибуты преобразуются хорошо, макет таблицы довольно запутан, текст вытекает из ячейки таблицы.
Я также быстро ознакомился с Jrex, Java-API для использования движка рендеринга Gecko.
Может быть, есть способ получить отрисованную страницу из механизма рендеринга Internet Explorer и автоматически отправить ее на инструмент для печати PDF? У меня нет опыта программирования OLE в Windows, поэтому я понятия не имею, что возможно, а что нет.
У вас есть идея?
Переведено автоматически
Ответ 1
В проекте Flying Saucer XHTML renderer есть поддержка вывода XHTML в PDF. Посмотрите на пример здесь.
Если бы нужно было создавать что-то сегодня, я бы больше не пошел по этому пути. Но вместо этого использовал бы http://pdfkit.org /. Вероятно, он лишен всех зависимостей от nodejs для запуска в браузере.
Ответ 3
Ознакомьтесь с iText; это чистый Java PDF toolkit, который поддерживает чтение данных из HTML. Недавно я использовал его в проекте, когда мне нужно было извлечь контент из нашей CMS и экспортировать в виде PDF-файлов, и все это было довольно просто. Поддержка CSS и тегов стилей довольно ограничена, но таблицы отображаются без каких-либо проблем (хотя мне так и не удалось установить ширину столбца).
Создание PDF-файла из HTML происходит примерно так: