XSL-FO Page-Break问题只生成一页?

时间:2011-08-30 08:04:52

标签: pdf-generation xsl-fo

我正在通过XSL-FO生成PDF文档。我有一个简单的xhtml结构:

<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表。这适用于大多数情况,在这种情况下,我也可以获得一页内容,但这应该至少有两页。生成时我收到以下警告:

  

30.08.2011 09:57:36 org.apache.fop.apps.FopFactoryConfigurator configure   信息:默认页面高度设置为:11in   30.08.2011 09:57:36 org.apache.fop.apps.FopFactoryConfigurator配置   信息:默认页面宽度设置为:8.26in   30.08.2011 09:57:36 org.apache.fop.fo.flow.TableColumn bind   WARNUNG:table-layout =“fixed”和column-width unspecified =&gt;回到公关   oportional柱宽度(1)   30.08.2011 09:57:37 org.apache.fop.layoutmgr.inline.ContentLayoutManager   WARNUNG:标题没有内容   30.08.2011 09:57:37 org.apache.fop.layoutmgr.PageBreaker $ 1 notifyOverflow   WARNUNG:第1页上的区域主体内容溢出了bl中的可用区域   ock-progression维度。 (fo:页面序列,没有上下文信息)

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

The only page generated

  • 这可能是什么问题?
  • 是否可以在一个表的两个fo:table-row元素之间进行分页?
  • 为什么没有生成第二页?

2 个答案:

答案 0 :(得分:1)

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

这可能是FOP中的一个错误。我还用XEP处理了FO文档,它生成了四页而没有抱怨。

也许您真正想要的是表格行keep-together

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

答案 1 :(得分:0)

对您的问题不是一个真正的答案,但您可以使用在页面上自动分页的开源speedata Publisher。它不是XSL-FO格式化程序,但类似。目前仅限德语(这将在2012年春季发生变化),但我知道这对您来说不是问题。