【问题标题】:How do I use floats with XSL-FO in C# (NFop)?如何在 C# (NFop) 中使用带有 XSL-FO 的浮点数?
【发布时间】:2023-03-30 22:38:01
【问题描述】:

问题: NFop 是否支持浮点数?

背景:我需要生成一份可打印的报告,其中包含页码、公司徽标和数据表。该报告是针对一个基于 Web 的项目,最初我想用纯 HTML 和 CSS 打印样式表来做,但是页码和表格单元格的拆分似乎是一个问题。

因此,我决定走 PDF 生成路线,使用 XSL 生成 XSL-FO 并使用 NFop 生成 PDF。但是,NFop 似乎不支持 XSL-FO 的<fo:float> 部分?

下面的渲染很好:

<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 更好的免费 PDF 生成库建议,请告诉我你认为它更好的理由。

标签: c# xsl-fo nfop


【解决方案1】:

NFOP(2008 年 3 月的最新版本)是 Apache FOP(2010 年 7 月的最新版本)的 .NET 端口。 Apache FOP 从未支持 fo:float(请参阅 http://xmlgraphics.apache.org/fop/compliance.html#fo-object-float)。

所以你的问题的答案是:不,很遗憾不支持 fo:float。

【讨论】:

  • 很不幸,花车很有用! :) 感谢您的努力
猜你喜欢
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-23
  • 2013-07-03
相关资源
最近更新 更多