我有一个软件可以XSL-FO从文本文件创建描述并将其转换为PDF文档.文本文件中的每一行都转换为fo:blockFO,听起来不对,但我现在无法改变它.我的文档包含1到3页的A4.
我现在需要做的是在现有文本下面添加一个宽约8厘米的图形.它应该是左对齐的.在它旁边,我想放置一个带有(长)描述的文本块.

我看了几个关于FO的文档并提出了这个:
<fo:block intrusion-displace="block" margin-top="20mm">
<fo:float float="right">
<fo:block margin-left="20mm">
Bacon ipsum dolor sit amet laborum proident...
</fo:block>
</fo:float>
<fo:external-graphic src="image.png"/>
</fo:block>
Run Code Online (Sandbox Code Playgroud)
这似乎是我想要的(当然经过一些微调),但遗憾的是FOP 还不支持 fo:float.
似乎还有一种方法可以创建多个列(没有表格),但我无法弄清楚它是如何工作的.一个似乎需要一个新的页面,但如果有可用的空间我需要使用当前页面(我猜我不必关心).
所以我的问题是:还有另一种方法可以不使用它来构建它fo:float吗?
您可以尝试使用该图像作为背景图像,并保留与图像一样宽的左内边距。
<fo:block intrusion-displace="block" margin-top="20mm">
<fo:block padding-left="20mm"
background-image="image.png"
background-repeat="no-repeat">
Bacon ipsum dolor sit amet laborum proident...
</fo:block>
</fo:block>
Run Code Online (Sandbox Code Playgroud)
如果图像需要进一步处理,而这只能通过 进行<fo:external-graphic>,您可以使用填充技术和一个额外的、绝对定位的块容器:
<fo:block intrusion-displace="block" margin-top="20mm">
<fo:block padding-left="20mm">
Bacon ipsum dolor sit amet laborum proident...
</fo:block>
<fo:block-container absolute-position="absolute">
<fo:block>
<fo:external-graphic src="image.png"/>
</fo:block>
</fo:block-container>
</fo:block>
Run Code Online (Sandbox Code Playgroud)
第三种选择是使用表格。