我正在通过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:页面序列,没有上下文信息)
我得到的结果是一页内容,其中一个元素溢出页面底部。但其余内容丢失,而不是第二页生成。
答案 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年春季发生变化),但我知道这对您来说不是问题。