2011-08-30 54 views
0

我正在通过XSL-FO生成PDF文档。我有一个简单的XHTML结构是这样的:使用XSL-FO分页问题仅生成一个页面?

<body> 
<h2><center>Status</center></h2> 
<table border="0"> 
<colgroup span="5"></colgroup> 
<tr> 
    <td><h4>Aktion</h4></td> 
    <td><h4>Kommentar</h4></td> 
    <td><h4></h4></td> 
    <td><h4>Zeitpunkt</h4></td> 
    <td><h4>Benutzer</h4></td> 
</tr> 
<tr> 
    <td><h5>Mappe archiviert</h5></td> 
    <td><h5>QMSAA</h5></td> 
    <td><h5></h5></td> 
    <td><h5>26.07.2011 13:14</h5></td> 
    <td><h5>Mustermann, Peter</h5></td> 
</tr> 
<tr> 
    <td><h5>Mappe als pdf gedruckt.</h5></td> 
    <td><h5></h5></td> 
    <td><h5></h5></td> 
    <td><h5>26.07.2011 13:14</h5></td> 
    <td><h5>Mustermann, Peter</h5></td> 
</tr> 
.... 

,我使用的XHTML,FOP样式表这个XHTML转换为XSL-FO表。这适用于大多数情况,在这种情况下,我也可以得到一页内容,但这应该至少有两页。在生成我得到以下警告:

2011年8月30日九时57分36秒org.apache.fop.apps.FopFactoryConfigurator配置 INFO:默认页面高度设置为:11英寸 2011年8月30日09:57 :36 org.apache.fop.apps.FopFactoryConfigurator配置 信息:默认页面宽度设置为:8.26in 30.08.2011 09:57:36 org.apache.fop.fo.flow.TableColumn绑定 WARNUNG:table-布局=“固定”和列宽未指定=>返回至pr oportional-column-width(1) 30.08.2011 09:57:37 org.apache.fop.layoutmgr.inline.ContentLayoutManager WARNUNG:Title has没有内容 30.08.2011 09:57:37 org.apache.fop.layoutmgr.PageBreaker $ 1 notifyOverflow WARNUNG:页面1上region-body的内容溢出了可用区域block-progression维度。 (fo:页面序列,没有上下文信息可用)

我得到的结果是一页内容,其中一个元素溢出页面的底部。但其余内容丢失,不会生成第二页。

The only page generated

  • 可以在这里是什么问题?
  • 是否可以在一个表的两个fo:table-row元素之间分页?
  • 为什么不生成第二页?
+1

你能向我们展示XSL-FO文档吗(最好尽可能减少)? – mzjn

+0

不幸的是,我不能因为我正在处理的系统是一个黑盒子。我只能访问生成FO代码的xsl样式表。我会尽力发布。 – Chris

+0

如果您有XML源代码和XSLT样式表,您难道不能忘记“黑盒子”并从命令行运行转换吗? – mzjn

回答

1

您的FO文档中表格单元格上的块的keep-with-next.within-column属性存在问题。如果将“常量”值替换为“自动”,则FOP 1.0将输出四页。

这可能是FOP中的一个错误。我还用XEP处理了FO文件,并且没有抱怨地产生了四页。

也许你真正想要的是keep-together在表行上?

我还注意到<fo:page-sequence>上有一个空的font-family属性。

+0

谢谢,但我只是将它们全部更改为“自动”,这并没有改变任何东西。我也删除了fo:block元素的所有属性,但我仍然得到相同的结果。 – Chris

+0

您使用的是什么版本的FOP? – mzjn

+0

我到目前为止使用的是版本0.94,但由于你的问题,我今天试过版本1.0及其库。仍然是同样的结果。 – Chris

0

不是一个真正的回答你的问题,但你可以使用开源的speedata Publisher具有自动表跨页断。它不是XSL-FO格式化程序,但类似。目前仅限于德语(这将在2012年春季发生变化),但我知道这对您而言不是问题。