#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. Большое вам спасибо за ответ. Я изучу советы и посмотрю, что можно сделать.