6

我有一个软件,可以XSL-FO从文本文件创建描述并将其转换为 PDF 文档。文本文件中的每一行都转换为fo:blockFO 中的 a,这听起来不对,但我现在无法更改。我的文档包含 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>

这似乎是我想要的(当然经过一些微调),但不幸的是 FOP还不支持 fo:float

似乎还有一种方法可以创建多个列(没有表),但我无法弄清楚它是如何工作的。一个似乎需要一个新页面,但如果有可用空间,我需要使用当前页面(我猜我不必关心)。

所以我的问题是:有没有另一种方法可以在不使用的情况下构建它fo:float

4

1 回答 1

4

您可以尝试将图像用作背景图像并留下与图像一样宽的左侧填充。

<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>

如果图像需要进一步处理,只能使用<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>

第三种选择是使用表格。

于 2012-07-26T12:36:00.150 回答