2016-05-23 7 views
0

В настоящее время я создаю pdfs с изображениями, используя pdfbox в приложении vaadin. Мне интересно, как я могу использовать один и тот же путь изображения в pdfbox, который используется темой vaadin.
Сейчас я все еще использую файл .properties, чтобы указать на папку с изображениями, но я бы предпочел, чтобы я мог просто поместить изображения в папку темы. Таким образом, я мог бы легко добавлять изображения в папку и иметь их в git. Эта автоматизация избавит меня от необходимости убедиться, что файл и изображения .properties работают на разных машинах.Локальный путь темы vaadin

Лучшее решение, которое я нашел до сих пор, это использование Application.class.getResource ("/ images"). ToString(); Что мне не нравится в том, что он возвращает его в формате «файл:». Я мог бы просто удалить «файл:» - часть, но мне было интересно, лучшее ли решение для этого?

+0

Вы хотите создать pdf-файлы во время выполнения? И вы хотите, чтобы они были доступны пользователям приложения vaadin? – kukis

+0

Итак, вы хотите определить, где изображение под VAADIN/themes/yourtheme/imagxyz.img находится в локальной файловой системе? –

+0

@SteffenHarbich Да, это то, что им нужно. – BluE

ответ

0

Сначала получите контекст сервлета через VaadinServlet (см. Также this ответ).

ServletContext servletContext = VaadinServlet.getCurrent().getServletContext(); 

Затем вызовите

String path = getServletContext().getRealPath("/VAADIN/themes/..."); 

Согласно docs это может быть невозможно, если у вас есть веб-приложение, которое не распаковали из WAR-файла.

Смежные вопросы