2012-04-29 13 views
10

Ich habe MIME-Multi-Part-Daten, die ich mit XSL: FO in PDF konvertieren möchte. Ich bin bequem reading MIME mit Apache James und ich habe einen Griff auf embedded image data in Mime oder inline images in HTML. Ich suchte fleißig SO für "[xsl-fo] inline graphic" und "[xsl] +html +mime +image" und fand irgendwie the opposite und eine precurser was ich vorhabe. Auch Google on "convert HTML MIME to XSL:FO" war nicht schlüssig.Inline-Bilddaten in XSL: FO/Apache FOP

Was ich tun möchte, ist ein Element (oder eine Reihe von Elementen), die eine Grafik (JPG/PNG/GIF - alle oder einige von ihnen) in der PDF-Ausgabe einer XSL: FO Transformation rendern. Die Grafikdaten sollten innerhalb der .FO-Datei als Base64 (oder anders) codierte Daten enthalten. Ich habe herausgefunden, wie man auf external graphics zeigt, aber nichts über eingebettete Grafikdaten.

Wie würde das funktionieren?

Antwort

25

Das Element fo:external-graphic kann zum Einbetten von Inline-Daten verwendet werden. Verwenden Sie einfach die folgende Syntax:

<fo:external-graphic src="url('data:image/jpeg;base64,<DATA>')"/> 

<DATA> sollten mit dem base64 Datenfolge des JPEG-Bildes ersetzt werden.

+0

Ausgezeichnet, danke! – stwissel

+0

@Martin, können Sie auf einige Referenzdokumentationen zeigen, wo dies erklärt wird? Gemäß der XSL-Spezifikation sollte der Wert des Attributs "src" eine "uri-Spezifikation" ("src = url (...)") sein. – mzjn

+1

@mzjn: Du hast Recht. Ich hätte den "src" -Wert mit "url()" umhüllen sollen, um mit dem Standard konform zu sein. Da ich hauptsächlich FOP verwende, das die Kurzschrift akzeptiert, habe ich nicht über das explizite 'url()' Konstrukt nachgedacht. Ich werde die Antwort entsprechend bearbeiten. – Martin