Openhtml в pdf портит отображение pdf при первоначальной сборке

#native #pdfbox #quarkus #openhtmltopdf

#native #pdfbox #quarkus #openhtmltopdf

Вопрос:

Я использую это — https://github.com/danfickle/openhtmltopdf для преобразования из html в pdf. (Который использует Apache PDFBox внутри, и в этом, я думаю, проблема).

В режиме разработки все работает хорошо — я использую quarkus. Когда я запускаю — mvn, очищаю quarkus: dev и генерирую pdf, он отображается правильно (с таблицей html и всеми), как и ожидалось.

Однако, когда я создаю изначально (mvn package -Pnative), а затем генерирую pdf, это портит все отображение. Все это всего лишь одна строка, и она также не понимает css.

Сложная часть в том, что я не вижу никаких ошибок, поэтому не могу понять, что происходит не так.

Код Htmlto pdf, его действительно простой —

 PdfRendererBuilder builder = new PdfRendererBuilder();
builder.useFastMode();
builder.withHtmlContent(htmlContent, null);
builder.toStream(os);
builder.run();
  

Передайте любую строку (хорошо отформатированный html), и вы увидите разницу между двумя разными стилями выполнения.

Почему это происходит?

Ответ №1:

Трудно сказать, не заглядывая в код библиотеки.

Quarkus делает все возможное, чтобы интегрировать библиотеки и заставить их работать с собственным режимом, добавляя части, требуемые для собственного режима. Для получения ограничений собственного режима, пожалуйста, проверьте эту ссылку: https://www.graalvm.org/reference-manual/native-image/Limitations /.

Некоторые библиотеки могут работать «из коробки» без дополнительной настройки. Другие требуют дополнительной настройки для соответствия правилам собственного изображения.

Я подозреваю, что библиотека может использовать какое-то отражение, которое не зарегистрировано в собственном изображении. Может быть, сначала попробуйте заглянуть в него и зарегистрировать дополнительные ресурсы: https://quarkus.io/guides/writing-native-applications-tips

Комментарии:

1. Большое вам спасибо за ответ. Я изучу советы и посмотрю, что можно сделать.