XSL:FO / Apache FOP 中的内联图像数据

Posted

技术标签:

【中文标题】XSL:FO / Apache FOP 中的内联图像数据【英文标题】:Inline image data in XSL:FO / Apache FOP 【发布时间】:2012-05-09 11:12:40 【问题描述】:

我有想要使用 XSL:FO 转换为 PDF 的 MIME 多部分数据。我对 reading MIME 使用 Apache James 很舒服,而且我掌握了 Mime 中的 embedded image data 或 html 中的 inline images。我努力搜索了"[xsl-fo] inline graphic" 和"[xsl] +html +mime +image" 并以某种方式找到了the opposite 和precurser 我在做什么。 Google on "convert HTML MIME to XSL:FO" 也没有定论。

我想要做的是在 XSL:FO 转换的 PDF 输出中使用一个元素(或一组元素)来呈现图形(JPG/PNG/GIF - 全部或部分)。图形数据应作为 Base64(或其他)编码数据包含在 内部 .fo 文件中。我找到了如何指向external graphics,但没有找到关于嵌入式图形数据的方法。

这将如何运作?

【问题讨论】:

【参考方案1】:

元素fo:external-graphic 也可用于嵌入内联数据。只需使用以下语法:

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

&lt;DATA&gt; 应替换为您的 JPEG 图像的 base64 数据字符串。

【讨论】:

@Martin,您能否指出一些对此进行解释的参考文档?根据 XSL 规范,src 属性的值应该是“uri-specification”(src=url(...))。 @mzjn:你是对的。我应该用url() 包装srcvalue 以符合标准。由于我主要使用接受速记形式的 FOP,因此我没有考虑明确的 url() 构造。我会相应地编辑答案。

以上是关于XSL:FO / Apache FOP 中的内联图像数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 FOP 生成 PDF 表单?

去除 FOP 内联元素中的空格

如何覆盖“region-body”为 XSL:FO 中的表设置的边距?

XSL/FO 在选择语句中跳过一个值

XSL-FO: fo:marker 可以用来存储任何东西吗?

xsl:fo 在一个块中使用不同的颜色/字体