2012-04-29 20 views
10

Mam dane MIME dla wielu części, które chcę przekonwertować na PDF przy użyciu XSL: FO. Jestem wygodny reading MIME używając Apache James i mam uchwyt na embedded image data w Mime lub inline images w HTML. Dokładnie szukałem SO dla "[xsl-fo] inline graphic" i "[xsl] +html +mime +image" i znalazłem w jakiś sposób the opposite i precurser co zamierzam. Również Google on "convert HTML MIME to XSL:FO" było niejednoznaczne.Wewnętrzne dane obrazu w XSL: FO/Apache FOP

Co chcę zrobić, to mieć element (lub zestaw elementów), który renderuje grafikę (JPG/PNG/GIF - wszystkie lub niektóre z nich) w wyjściowym pliku PDF transformacji XSL: FO. Dane graficzne powinny być zawarte w wewnątrz pliku jako pliku Base64 (lub w inny sposób) zakodowanego. Znalazłem, jak wskazać na external graphics, ale nic na temat osadzonych danych graficznych.

Jak to działa?

Odpowiedz

25

Element fo:external-graphic może być również używany do osadzania danych wbudowanych. Wystarczy użyć następującej składni:

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

<DATA> należy zastąpić swoje dane ciąg base64 obrazu JPEG.

+0

Doskonale, dziękuję! – stwissel

+0

@Martin, czy możesz wskazać na dokumentację referencyjną, w której jest to wyjaśnione? Zgodnie ze specyfikacją XSL wartość atrybutu 'src' powinna być" specyfikacją uri "(' src = url (...) '). – mzjn

+1

@mzjn: Masz rację. Powinienem był zawinąć 'src'value' url() ', aby był zgodny ze standardem. Ponieważ przede wszystkim używam FOP, który akceptuje skróconą formę, nie myślałem o jawnym konstrukcie 'url()'. Odpowiednio edytuję odpowiedź. – Martin