Сервис выполняет конвертацию из XHTML и HTML5 в PDF/A-1, пригодный для регистрации в РЭМД ЕГИСЗ. Для конвертации используется проект openhtmltopdf. См. описание на странице https://github.com/danfickle/openhtmltopdf/wiki.
Сервис реализован как сервлет для веб сервера Jetty версии 9.4+.
Не подеерживаются JS скрипты в HTML. Рекомендуется использовать XHTML как более производительный парсер. В HTML должен быть указан шрифт, так как в openhtmltopdf нет шрифта "по умолчанию". Пример:
<style type="text/css">
body {
font-family: 'Arial';
}
</style>
В стилях необходимо использовать только те шрифты, которые предварительно загружены в папку DATA_PATH. Можно использовать шрифты mscorefonts2. В логах работы openhtmltopdf (см. ниже) можно увидеть загруженные шрифты.
На форме можно указать ключ, по которому сервлет сохранит логи работы openhtmltopdf. При открытии лога с этим ключом производится удаление лога.
ВАЖНО! В случае если ключ был указан, то вызов просмотра лога по ключу является обязательным! Отсутвие вызова просмотра лога приведет к утечке памяти в сервисе!
XXXXX - ключ, который был передан при запуске конвертации. После открытия лога ключом производится удаление этого лога.
Запуск конвертации файла, переданного в форме. Если в форме передан ключ лога, то включается запись логов. В случае фатальной ошибки формирования pdf возвращается файл нулевого размера. В этом случае причина ошибки будет в логе как "WARNING Unhandled exception ...".
Запуск конвертации файла, переданного в форме. Если в форме передан ключ лога, то включается запись логов. В случае фатальной ошибки формирования pdf возвращается файл нулевого размера. В этом случае причина ошибки будет в логе как "WARNING Unhandled exception ...".
Содержит исходный код. Для сборки проекта необходимо выполнить команду
mvn package
в папке, где расположен файл pom.xml. Подробнее о Maven можно найти на странице https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html.
В файле PdfConverter.war:\WEB-INF\web.xml задаются следующие параметры:
- DATA_PATH - полный путь к папке, где хранятся TrueType шрифты, используемые для формирования PDF/A-1. Значение по умолчанию - /var/www/upload/PDFConverter.
Для работы сервлета semd.war нужен Jetty версии 9.4 или выше. Необходимо опубликовать сервлет semd.war в Jetty 9. Необходимо руководствоваться инструкций по публикации Jetty.
Для Jetty9 из состава Ubuntu 20.04 файл semd.war необходимо поместить в папку /var/lib/jetty9/webapps. Отвечать сервлет будет по адресу "http:/localhost:9000/semd/login.html".