2015-02-03 13 views
7

Gibt es eine Möglichkeit, Bilder und Tabellen in Textfelder mit Markup = HTML einzubinden, wenn Sie eine PDF mit JasperReports exportieren?Wie können Bilder und Tabellen in Textfelder eingefügt werden, wenn sie in PDF exportiert werden?

Wenn ich ein Textfeld mit Markup = html zu meinem Bericht, grundlegende HTML-Unterstützung ist aus der Box zur Verfügung gestellt, z.B .: hinzufügen

<textField> 
    <reportElement .../> 
    <textElement markup="html"/> 
    <textFieldExpression><![CDATA["<html>some <b>bold</b> text</html>"]]></textFieldExpression> 
</textField> 

jedoch komplexere HTML unterstützt nicht zu sein scheint. Wenn ich das richtig verstanden habe, müsste man einen eigenen MarkupProcessor schreiben, um den eingehenden HTML in jrxml zu transformieren und ihn in die JasperReports Engine zu stecken, um komplexere Beispiele zu behandeln.

Da wir einen CKEditor verwenden, um die Eingabe zu behandeln, sollte die Liste der verwendeten Tags überschaubar sein. Zweitens verwenden wir bereits Jsoup, um HTML zu parsen und zu bereinigen, was bei der Implementierung des MarkupProcessors nützlich sein könnte.

Gibt es ein Beispiel, auf dem ich aufbauen könnte? Wie gesagt, ich suche hauptsächlich nach Bild (img) und Tabelle (table, tr, td) Unterstützung.

Wenn nicht, gibt es eine Alternative, um dies mit JasperReports zu erreichen?

+0

Ich habe die gleiche Frage, haben Sie eine Lösung gefunden? –

+0

@AlbertHendriks es scheint nicht möglich zu sein, zumindest habe ich keine einfache Lösung gefunden. Was ich getan habe, ist die Verwendung von http://www.docx4java.org, um .docx-Dateien zu generieren, die den HTML-Code enthalten. Wie es sich herausstellt, sind unsere Benutzer ziemlich glücklich, Word-Dateien anstelle von PDF zu bekommen, also bin ich damit gut. Es kann jedoch möglich sein, das resultierende docx in pdf umzuwandeln, aber ich habe es noch nicht ausprobiert. Übrigens scheint docx4j https://code.google.com/p/flying-saucer/ unter der Haube zu verwenden, um den HTML-Code zu importieren. –

+0

Sie können das Bild nicht in das Textfeld einfügen. Hier ist meine Email-ID. bitte ping mir dein genaues Szenario. [email protected] – user1791574

Antwort

3

Es scheint in der Tat unmöglich. Stattdessen werden stattdessen Bilder an vordefinierten Positionen in jrxml eingefügt und die Funktionalität von ckeditor eingeschränkt. Eine andere Möglichkeit wäre, die Bild-URLs aus ckeditor zu extrahieren und sie an vordefinierten Stellen in der jrxml-Datei einzufügen, aber das verwenden wir gerade nicht.

Verwandte Themen