Render-Bild vom servlet in flyingsaucer generierte pdf
Ich bin mit flyingsaucer zu Rendern, wird ein xhtml-Dokument in pdf durch ein servlet gibt die generierten pdf-Dokument. Die xhtml-Dokument verfügt über ein Bild, das angefordert wird, von einem anderen servlet. Das Bild servlet prüft, wer eingeloggt ist, vor der Rückgabe das entsprechende Bild. Der code unten zeigt, wie das Bild angefordert:
<img height="140" width="140" src="http://localhost:8080/myapp/servlet/DisplayPic" />
Mein problem ist, dass die http-Anfrage für das Bild ist aus der pdf-renderer und nicht der Benutzer eingeloggt ist, also das Bild servlet nicht wissen, wer sich angemeldet hat und deshalb das gewünschte Bild wird nicht zurückgegeben.
Derzeit bin ich über den folgenden code zum Rendern von xhtml-Dokument:
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(xhtmlDocumentAsString);
renderer.layout();
os = response.getOutputStream();
renderer.createPDF(os);
Muss ich entweder Aufrechterhaltung der Sitzung des Benutzers, wenn das Bild servlet angefordert wird oder geben Sie den renderer mit dem Bild verwenden, die für dieses bestimmte xhtml-element. Ich denke, letzteres kann mit einer ReplacedElementFactory
aber ich habe nicht in der Lage zu Graben, alle Beispiel-code, der mir helfen kann.
- Das ist genial! Irgendeine Idee, wie es funktionieren für SVG-Dateien?
- Es gibt einen feature request, um Daten-url Bilder direkt in der Fliegenden Untertasse: code.google.com/p/flying-saucer/issues/detail?id=202
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe diese Arbeit sehr schön jetzt. Hier ist der code.
In meinem xhtml-Dokument, das ich habe:
(Ich bin mit einem
div
- element anstelle vonimg
als die Fabrik ist nur für block-level-Elemente)Ich render mein Dokument mit:
Und ich habe meine eigenen
ReplacedElementFactory
wie folgt:fsImage != null
schauen Sie direkt nach der Initialisierung?