3

我正在使用 FOP 将 HTML(嵌入在 XML 中)转换为 PDF。HTML 片段如下所示:-

<table border="1" width="100%">
  <thead>
    <tr>
      <th>Name</th>
      <th>Value</th>
    </tr>
  </thead>
  <tbody/>
</table>

当我转换时,我收到此错误:-

Caused by: org.apache.fop.fo.ValidationException: Error(Unknown location): fo:table-body i
s missing child elements.
Required Content Model: marker* (table-row+|table-cell+)

删除<tbody/>元素时出现类似错误:-

org.apache.fop.fo.ValidationException: Error(Unknown location): fo:table is missing child
elements.
Required Content Model: (marker*,table-column*,table-header?,table-footer?,table-body+)

看起来像 fo:table 需要 table-body,而 table-body 需要 table-row。我的问题是:-

是否可以创建一个只有表头而没有表体或空表体的表?

4

2 回答 2

0

如果您的数据 xpath 是 xpa/th,您可以使用以下内容:

<fo:table>
    <fo:table-header>(whatever)</fo:table-header>
    <fo:table-body>
        <xsl:if test="xpa/th">
            <xsl:apply-templates select="xpa/th" />
        </xsl:if>
        <xsl:if test="not(xpa/th)">
            <fo:table-cell><fo:block /></fo:table-cell>
        </xsl:if>
    </fo:table-body>
</fo:table>
于 2013-02-08T10:33:57.030 回答
0

您当然可以通过以下方式:

  1. 创建<fo:table-body>
  2. <fo:table-cell即使需要也创建
  3. 将边框大小设置为零并设置为白色,或页面背景的颜色
于 2012-06-29T12:29:56.573 回答