Мне нужно автоматически сгенерировать файл PDF из существующего (X) HTML-документа. Во входных файлах (отчетах) используется довольно простой макет на основе таблиц, поэтому поддержка действительно причудливых материалов JavaScript / CSS, вероятно, не нужна.
Поскольку я привык работать на Java, предпочтительнее решение, которое легко использовать в java-проекте. Однако он должен работать только в системах Windows.
Один из возможных способов сделать это, но не дает хорошего качества вывода (по крайней мере, из коробки), - это использовать CSS2XSLFO и Apache FOP для создания файлов PDF. Проблема, с которой я столкнулся, заключалась в том, что, хотя CSS-атрибуты хорошо конвертируются, макет таблицы довольно запутан, и текст вытекает из ячейки таблицы.
Я также быстро взглянул на Jrex, Java-API для использования движка рендеринга Gecko.
Есть ли способ получить отрисованную страницу из движка рендеринга Internet Explorer и автоматически отправить ее в инструмент PDF-Printer? У меня нет опыта программирования OLE в Windows, поэтому я понятия не имею, что возможно, а что нет.
У тебя есть идея?
источник
Ответы:
Проект визуализатора XHTML « Летающая тарелка » поддерживает вывод XHTML в PDF. Взгляните на пример здесь .
источник
Вы пробовали WKHTMLTOPDF ?
Это простая утилита оболочки, реализация WebKit с открытым исходным кодом. Оба бесплатны.
Мы поставили небольшой учебник здесь
РЕДАКТИРОВАТЬ (2017):
Если бы мне нужно было что-то построить сегодня, я бы больше не пошел по этому пути.
Но вместо этого использовал бы http://pdfkit.org/ .
Вероятно, лишив его всех зависимостей nodejs для запуска в браузере.
источник
Проверьте iText ; это чистый набор инструментов Java PDF, который поддерживает чтение данных из HTML. Я недавно использовал его в проекте, когда мне нужно было извлечь контент из нашей CMS и экспортировать в виде файлов PDF, и все это было довольно просто. Поддержка CSS и тегов стилей довольно ограничена, но она без проблем отображает таблицы (хотя мне так и не удалось установить ширину столбца).
Создание PDF-файла из HTML происходит примерно так:
источник
Если у вас есть финансирование, ничто не сравнится с Prince XML, как показано в этом видео.
источник
Так работает ActivePDF , что хорошо означает, что вы знаете, что получите, и на самом деле имеет разумную поддержку стилей.
Это также один из немногих пакетов, которые я нашел (если оглянуться на несколько лет назад), который на самом деле поддерживает различные команды CSS для разрыва страницы.
К сожалению, программное обеспечение ActivePDF очень расстраивает - поскольку оно должно запускать браузер IE в фоновом режиме для конвертации, оно может быть довольно медленным и не особенно стабильным.
В настоящее время в бета-версии есть новая версия, которая должна быть намного лучше, но на самом деле у меня не было возможности опробовать ее, поэтому не знаю, насколько это улучшение.
источник
Вы можете использовать безголовый Firefox с расширением. Бегать довольно раздражает, но дает хорошие результаты.
Ознакомьтесь с этим ответом для получения дополнительной информации.
источник
Если вы посмотрите на боковую панель своего вопроса, вы увидите много связанных вопросов ...
В вашем контексте более простым методом может быть установка драйвера печати PDF, такого как PDFCreator, и просто распечатать страницу на этом выходе.
источник
Амьюни WebkitPDF можно использовать с JNI для решения только для Windows. Это библиотека преобразования HTML в PDF / XAML, бесплатная для коммерческого и некоммерческого использования.
Если выходные файлы не нужны немедленно, для лучшей масштабируемости может быть лучше иметь очередь и несколько фоновых процессов, берущих элементы оттуда, конвертируя их и сохраняя затем в базе данных или файловой системе.
применяется обычный отказ от ответственности
источник