如何在C#(NFOP)中使用XSL-FO的Floats?
题
问题: NFOP支持浮子吗?
背景: 我需要生成一个可打印报告,其中包含页码,公司徽标和数据表。该报告适用于一个基于Web的项目,最初我想在纯HTML中使用CSS Print StylesHeet进行此报告,但是,表格和表单元格的分配似乎是一个问题。
因此,我决定使用XSL生成XSL-FO并使用NFOP生成PDF。但是,似乎NFOP不支持 <fo:float>
XSL-FO的一部分?
以下渲染良好:
<fo:block>
<fo:external-graphic src="c:\Projects\NFopSpike\NFopSpike\logo.jpg" />
<fo:block>
Foo
</fo:block>
<fo:block>
Bar
</fo:block>
</fo:block>
下面完全跳出图形:
<fo:block>
<fo:float float="start">
<fo:external-graphic src="c:\Projects\NFopSpike\NFopSpike\logo.jpg" />
</fo:float>
<fo:block>
Foo
</fo:block>
<fo:block>
Bar
</fo:block>
</fo:block>
我目前正在使用的替代解决方案是创建一个单独的块容器,它绝对位于浮动图像出现的位置,并确保其他内容不会遮盖,但是简单的浮子将更容易维护。
解决方案
NFOP(2008年3月的最新版本)是Apache FOP的.NET港口(2010年7月的最新版本)。 Apache FOP从未支持FO:float(请参阅 http://xmlgraphics.apache.org/fop/compliance.html#fo-object-float).
因此,您的问题的答案是:不,fo:不幸的是不支持浮动。
不隶属于 StackOverflow