6

フッターを Pisa 文書の最初のページに 1 つのフレームとして表示し、2 ページおきに別のフレームとして表示するのに問題があります。hereから lastPage のアイデアを適応させようとしましたが、うまくいきませんでした。

これを行うことは可能ですか?<pdf:nextpage />ドキュメントには複数のページにまたがる可能性がある (またはそうでない可能性がある) 長いテーブルがあるため、ここでは適切ではないようです。<pdf:nextframe />さらに、最初のページのみのフレームは有望に見えますが、これを正確に使用する方法はわかりません。

現在、私は(簡潔にするために切り取っています):

<style type="text/css">
  @page {
    margin: 1cm;
    margin-bottom: 2.5cm;
    @frame footer {
      -pdf-frame-content: footerFirst;
      -pdf-frame-border: 1;
      bottom: 2cm;
      margin-left: 1cm;
      margin-right: 1cm;
      height: 1cm;
   }
   @frame footer {
      -pdf-frame-content: footerOther;
      bottom: 2cm;
      margin-left: 1cm;
      margin-right: 1cm;
      height: 1cm;
}
</style>
<body>
  <table repeat="1">
    <!-- extra long table here -->
  </table>
  <div id="footerContent">This is a footer</div>
  <!-- what goes here to switch frames after the first page? -->
  <div id="footerOther"></div>
</body>

これにより、各ページに同じフッターが配置されます。連続する各ページに同じスペースを残す必要がありますが、フレームにはコンテンツがありません。

4

1 に答える 1

7

追加のレイアウトを名前で定義し、nexttemplate タグを使用して明示的に切り替えるように xhtml2pdf に指示できます。私は最近、最初のページにヘッダーを持たず、後続のすべてのページにヘッダーを表示するために、まさにこれを行いました。

おそらく次のように、@page 定義を 2 つの異なるページに変更する必要があります。

<style type="text/css">
  @page {
    margin: 1cm;
    margin-bottom: 2.5cm;
    @frame footer {
      -pdf-frame-content: footerFirst;
      -pdf-frame-border: 1;
      bottom: 2cm;
      margin-left: 1cm;
      margin-right: 1cm;
      height: 1cm;
   }
 }

 @page innerpages {
   margin: 1cm;
   margin-bottom: 2.5cm;
   @frame footer {
      -pdf-frame-content: footerOther;
      bottom: 2cm;
      margin-left: 1cm;
      margin-right: 1cm;
      height: 1cm;
   }
 }
</style>

次に、別のレイアウトに切り替えたい html で、次のようなタグを使用します。

<pdf:nexttemplate name="innerpages"/>

次のページ (およびテンプレートを再度変更するまでの後続のページ) では、「その他」のフッターで innerpages レイアウトが使用されます。

于 2012-03-19T21:29:37.790 に答える