2016-05-23 10 views
0

Ich erstelle derzeit pdfs mit Bildern mit pdfbox in einer Vaadin-Anwendung. Ich frage mich, wie ich den gleichen Bilderpfad in der pdfbox benutzen könnte, der vom vaadin Thema verwendet wird.
Momentan benutze ich noch eine .properties-Datei, um auf einen Bilderordner zu zeigen, aber ich würde es vorziehen, wenn ich die Bilder einfach in den Themenordner legen könnte. Auf diese Weise könnte ich einfach Bilder zum Ordner hinzufügen und sie in Git haben. Diese Automatisierung würde mich erschweren, sicherzustellen, dass die .properties-Datei und die Bilder auf verschiedenen Computern funktionieren. Die beste Lösung, die ich bisher gefunden habe, ist Application.class.getResource ("/ images"). ToString(); Was ich nicht mag ist, dass es es im Format "Datei:" zurückgibt. Ich könnte einfach den "file:" - Teil entfernen, aber ich frage mich, ob es eine bessere Lösung dafür gibt?Lokaler Pfad von Vaadin Thema

+0

Meinen Sie, Sie erstellen PDFs während der Laufzeit? Und Sie möchten, dass sie für die Benutzer der vaadin Anwendung zugänglich sind? – kukis

+0

Also, Sie möchten bestimmen, wo das Bild unter VAADIN/themes/yourtheme/imagxyz.img auf Ihrem lokalen Dateisystem befindet? –

+0

@SteffenHarbich Ja, das ist was ich suche. – BluE

Antwort

0

Zuerst erhalten Sie den Servlet-Kontext über VaadinServlet (siehe auch this Antwort).

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

nennen Dann

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

die docs Nach ihm nicht möglich sein könnte, wenn Sie einen Web-App haben, die nicht von WAR-Datei entpackt wird.