我通过混合FOP
和xsl
文件来实现xml
,以获取PDF
文件。
但我似乎无法正确地将桌子向右移动
我操纵了与attributes
相关的以下FOP table
:
start-indent
:但是表格的内容比...更多
将start-indent
的值移动两次会破坏整体布局margin-left
:此属性在表格上的效果与start-indent
还有其他方法吗?
答案 0 :(得分:3)
如果您在start-indent="20mm"
元素上指定fo:table
,在start-indent="0mm"
上指定fo:table-body
(以及fo:table-header
和{{1如果使用的话)。例如:
fo:table-footer
start-indent
是一个继承的属性。重置它使其不适用于<fo:table table-layout="fixed" width="60mm"
border-style="solid" start-indent="20mm">
<fo:table-column column-width="40%"/>
<fo:table-column column-width="60%"/>
<fo:table-body start-indent="0mm" >
<fo:table-row>
<fo:table-cell border-style="solid">
<fo:block>Col1</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid">
<fo:block>Col2</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
的子区域。
我无法使用margin-left
(非继承属性)。这可能是一个FOP错误(它适用于XEP)。
另请参阅Xmlgraphics-fop wiki上的Interpreting Indent Inheritance in XSL-FO文章 (特别是“带表格的更多例子”部分)。
答案 1 :(得分:1)
如果上述解决方案不起作用,还有另一种方法。它只是一个空第一列的表。所以它看起来像一张右移的桌子。
<fo:block wrap-option="no-wrap">
<fo:table border-collapse="collapse" width="100%">
<fo:table-column column-width="proportional-column-width(60)" />
<fo:table-column column-width="proportional-column-width(20)" />
<fo:table-column column-width="proportional-column-width(20)" />
<fo:table-header />
<fo:table-body>
<fo:table-row>
<fo:table-cell />
<fo:table-cell>
<fo:block>John</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>Doe</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell />
<fo:table-cell>
<fo:block>Peter</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>Parker</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>