2

結果としてファイルを取得するために、ファイルとファイルをFOP混合して実装しています。 xslxmlPDF

しかし、テーブルを正しく右にシフトできないようです。に関連する
次の FOP を操作しました。 attributestable

  1. start-indent: しかし、テーブルの内容が のシフト値よりもstart-indent2 倍以上シフトし、全体のレイアウトが崩れます。
  2. margin-left: この属性は、テーブルに対して次のように同じように影響するようですstart-indent

他に方法はありますか?

4

2 に答える 2

4

たとえば、start-indent="20mm"onfo:table要素 とstart-indent="0mm"on fo:table-body(および onfo:table-headerfo:table-footerが使用されている場合) を指定すると、機能するはずです。例えば:

<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>

start-indent継承されたプロパティです。リセットすると、 の子領域には適用されなくなりますfo:table

margin-left(継承されていないプロパティ)で動作させることができませんでした。これは FOP のバグである可能性があります ( XEPで動作します)。

Xmlgraphics-fop wikiのInterpreting Indent Inheritance in XSL-FOの記事も参照してください (特に、「テーブルを使用したその他の例」セクション)。

于 2012-09-13T13:50:23.313 に答える
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>
  • テーブルの幅は 100% で、最初の列は空です。
  • 列の幅はパーセンテージになっています。
  • column-width の % は明らかに許可されていません。代わりに、proportional-column-width を使用してください。
  • この例ではヘッダー名はありませんが、最初の列以外の名前を追加できます。
  • 境界線が必要な場合は、論理的に最初のものを除いて実行する必要があります。
于 2014-09-19T14:01:56.153 に答える