質問
CSSの場合:
@page { @top-right { content: "Page " counter(page) " of " counter(pages); } }
ページを印刷するときに、すべてのページの上部にページ番号を表示できます。これはうまく機能します。しかし、ページ番号が1ではなく2で始まるようにするにはどうすればよいですか?上記のCSSルールを変更することでそれを実行できますか?
解決
Flying Saucerを使用している場合(私の場合)、次のCSSを使用します:
table {-fs-table-paginate:paginate; }
これは魅力のように機能します。そして、空飛ぶ円盤の岩:)。本当に強くお勧めします。
他のヒント
試してください:
@page {
counter-increment: page;
counter-reset: page 1;
@top-right {
content: "Page " counter(page) " of " counter(pages);
}
}
page 1
を使用すると、カウンターの開始点がリセットされます。任意の整数を使用して、カウントを開始できます。デフォルトは 0
です。
Flying Saucerで少し遊んだ後、CSS(または非常に複雑なもの)でこれを行う方法はないと思います。「ページ」/「ページ」内部CSS変数のようです。おそらく、CSS 3のほうが良くなるでしょう。calc()関数があるようです。そのため、counter(calc(page + 1))はおそらく動作します...
ただし、2ページ目からPDFを取得する別の方法があります。xhtmlファイルに次の行を追加することにより、PDFに空白の最初のページを追加できます。
<h1 style="page-break-before:always"></h1>
その後、プリンターを使用する場合はPDFの2〜...ページのみを印刷するか、PDFエディターでPDFから最初のページを削除できます。
カウンターに関するCSSドキュメントを見ましたか? こちらを参照カウンターリセットを呼び出すことができるようです。デフォルトでは、カウンターは0に設定されています。Bodyタグで&quot; content-reset:page 1;&quot;を実行した場合、その後、最初のページを強制的に1ではなく2で開始する必要があります。
これが機能するかどうかわかりませんが、 counter(page + 1)
を試してみませんか?