Из -за необходимости работы я недавно изучил функцию HTML, преобразованного в PDF. Ключевая технология HTML -PDF заключается в том, как обрабатывать сложный стиль CSS на веб -странице, собирая данные онлайн, обнаружено, что текущее решение для преобразования HTML в основном разделено на три категории.
Режим клиента : вызовите клиентскую программу на стойке регистрации и используйте функцию клиентской программы для завершения преобразования файла PDF. Этот тестовый инструмент: wkhtmltopdf и phantomjs. Java Jar Package Режим анализа решений: анализ кода Java CSS Стиль, перевод HTML -файл - файл PDF. Эта категория тестов: ITEXT, Flying Sauser, PD4ML. JS Front -end Analysis Mode: JS Front -END -анализ HTML -файл -PDF -файл.Для решений, представленных в Интернете, на этот раз объедините потребности реальных проектов, выполните один за другим, чтобы сделать следующий анализ с точки зрения производительности и функции.
1. Введение в тестовую страницуПросмотрев введение каждого случая преобразования в Интернете, простой стиль HTML, общий стиль таблицы поддерживается приведенными выше схемами при преобразовании файлов PDF. Однако, учитывая потребности фактического бизнеса, этот тест специально использует стиль начальной загрузки CSS (V 3.3.6), а страница также применяет новые функции CSS3. На основе этой новой функции напишите статическую HTML -страницу.
2. Тест WKHTMLTOPDFWKHTMLTOPDF - это инструмент, разработанный с использованием механизма рендеринга веб -страницы WebKit для преобразования HTML в PDF, который может быть интегрирован с несколькими языками сценариев для преобразования документов. Официальный адрес веб -сайта http://wkhtmltopdf.org/
Технические функции: WKHTMLTOPDF может напрямую конвертировать веб -страницу в браузере в PDF. При использовании кода Java вы можете вызвать инструкцию CMD, чтобы завершить функцию веб -страницы в PDF.
Функциональный тест: введите тестовую инструкцию непосредственно в CMD, чтобы просмотреть прогресс обработки.
Первый параметр: путь, в котором находится wkhtmltopdf.exe
Второй параметр: необходимо преобразовать на HTML -страницу PDF
Третий параметр: PDF -прохождение файла и имя файла
Экспортный эффект страницы заключается в следующем:
Описание теста:
Установлено, что WKHTMLTOPDF лучше поддерживает стиль CSS в BootStap в целом. Новые функции CSS3 не очень хорошо поддерживаются для круглых картинок. Некоторые стили страниц потерпят неудачу. Для отображения диаграммы программа экспорта в диаграмме каждого ART сообщит об ошибке и не поддерживает ее. Тем не менее, Echart имеет диаграмму, преобразованную в интерфейс изображения, который можно экспортировать в PDF, получив адрес изображения.
3. Тест ФантомаPhantomjs -это безголовный браузер, основанный на ядре Webkit, то есть нет интерфейса пользовательского интерфейса, то есть это браузер, но это клик -через поворот страницы и т. Д. Для связанных операций с проектированием процедуры. Он предоставляет интерфейс API JavaScript, то есть, написав программу JS, вы можете напрямую взаимодействовать с ядром Webkit. C/C ++ может быть лучше разработан на основе разработки WebKit. Он также предоставляет установку и использование пакетов различных установок ОС, таких как Windows, Linux, Mac, то есть, он может разрабатывать и собирать проекты или автоматическое тестирование проекта на разных платформах. Официальный адрес веб -сайта http://phantomjs.org/
Phantomjs можно использовать в качестве анализа веб -страницы. Тест в CMD выглядит следующим образом:
Тестовая страница руководствуется следующим образом:
Описание теста:
Было обнаружено, что Phantomjs поддерживает стиль Bootstap. Новые функции CSS3 не очень хорошо поддерживаются для круглых картинок. Некоторые стили страниц потерпят неудачу. Для отображения диаграммы Echart он также может быть экспортирован напрямую. Эффект заключается в следующем:
3.Itext и Flying SauserITEXT реализует HTML2PDF, быструю скорость, плохую способность коррекции ошибок и поддерживает китайский (требующий HTML для использования кодирования Unicode), но Китай поддерживает китайский шрифт с открытым исходным кодом. Flying Sauser реализует HTML2PDF, плохую способность коррекции ошибок, поддерживает различные китайские шрифты (некоторые стили не могут быть распознаны), с открытым исходным кодом.
Технические функции: анализ и обработка стиля HTML CSS на основе программирования Java, в настоящее время поддерживая только более простые страницы и стили. Для стиля CSS3 и сложной совместимости стиля CSS CSS3 чрезвычайно плох. Когда содержание страницы длинное, время обработки медленно. Справочный адрес: https://code.google.com/archive/p/flying-saucer/
Результаты теста: тестовая страница этого эксперимента не может выйти.
Описание теста:
Установлено, что два проекта с открытым исходным кодом и летают в основном совместимы с CSS3. Для простых таблиц, экспорта статистических данных и обновленных технологий включают в себя таблицу Bootstrap, экспорт таблицы DataGrid EasyUI. Эта схема, представленная в Интернете, не рекомендуется.
4.pd4ml тестPD4ML - это библиотека чистой Java класса. Справочный веб -сайт: http://www.pd4ml.com
Преимущество программного обеспечения:
Поддерживаемые теги HTML и атрибуты CSS относительно полны, а искажение преобразования относительно невелико. Устойчивость к ошибкам тегов веб -файлов и грамматических ошибок CSS лучше. Без дополнительного управления поддерживайте выход преобразования изображения.
Недостатком программного обеспечения является:
Без открытого исходного кода, последней демонстрационной версии, после загрузки и тестирования, обнаружено, что китайское преобразование не поддерживается. Вы должны купить коммерческую версию. (Вот очень яма. Тестирование искаженных проблем не может быть доступно, и обнаружено, что это не поддерживается позже). Некоторые из старых версий после растрескивания могут решить искаженную проблему, но поддерживаемый стиль CSS не завершен.
Результаты теста:
Описание теста:
Новая версия китайского искаженного, но поддерживает некоторые стили CSS. После того, как расшифровка старой версии совместимость с интерфейсом плохая, а поддержка BootsRTAP низкая. Учитывая, что это программное обеспечение для зарядки, а производительность не идеальна.
5. Html2canvas testHTML2Canvas - это довольно хорошая библиотека класса JavaScript. HTML2Canvas использует информацию о DOM и элементе стиля страницы и превращает ее в изображение Canvas для достижения функции скриншота страницы. Он не нуждается в рендеринге с сервера. Когда браузер не поддерживает холст, вместо этого будут использоваться FlashCanvas или ExplorErcanvas. Следующие браузеры могут хорошо поддерживать скрипт: Firefox 3.5+, Google Chrome, новая версия Opera, IE9 выше браузера. Поскольку каждый браузер отображает страницу разными способами, сгенерированные изображения не одинаковы. Хотя он все еще находится на стадии разработки, его все еще стоит с нетерпением ждать. Эта плавка -IN зависит от подключения jQuery -IN, рекомендуется использовать последнюю версию.
Не поддерживайте картинки Cross -Domain и не могут использовать часть подключения браузера -IN без поддержки изображений SVG, не поддерживая Flash, не поддерживайте IFREAM (может изменить исходный код JS, поддержка IFREAM)
При использовании html2canvas в это время я обнаружил, что многие страниц могут делать снимки экрана, включая диаграммы Echart. Только новые функции небольшого количества CSS3 не поддерживаются. Эффект экрана лучше. Однако при тестировании была обнаружена смертельная проблема. После анализа отслеживания было обнаружено, что функция JS HTML2Canvas обрабатывает стиль CSS, который он не может распознать. Особенно для скрытых и отображаемых модулей, он поддерживает недружелюбные.
Эффект скриншота страницы заключается в следующем:
Тем не менее, CSS исходной страницы выходит из строя, страница выглядит ненормальной, скрытый стиль, отображаемый стиль является хаотичным.
Описание теста:
Было обнаружено, что HTML2Canvas лучше поддерживает стиль Bootstap. Новые функции CSS3 не очень хорошо поддерживаются для круглых картинок. Его основное преимущество - легкий фронт.
6. РезюмеБлагодаря испытанию вышеупомянутых случаев, большинство широко используемых HTML -преобразований в PDF, представленные в Интернете. Анализируя принцип этих методов, можно сделать следующие выводы:
Веб -страница HTML полностью преобразуется в PDF, и все решения недостаточны. Если это всего лишь страница страницы формы, стиль HTML не принимает атрибут CSS3 как можно больше. HTML Front -Fend Style быстро развивается, новые функции CSS3 имеют хорошие эффекты, CSS определяет новые правила и грамматику. Классы преобразования Java, такие как ITEXT и Flying Sauser, не могут быть совместимы с этими изменениями, потому что они не могут записать функции преобразования во времени, и эти проекты с открытым исходным кодом являются более старой технологией. Суть PD4ML также является стилем Java Comprestion CSS. Но это также не поддерживает небольшое количество стилей CSS. И китайская искаженная проблема неудобна. Для клиентского режима браузера PhantomJS и WKHTMLTOPDF более мощны, скриншот - это только одна из небольших функций. Режим скриншота HTML2Canvas гибкий и представляет собой легкий фронтальный экранный инструмент. В настоящее время некоторые функции неполны, но общий эффект неплохо. Скриншот до PDF.
Приведенное выше содержимое этой статьи.