← すべてのドキュメント
ページレイアウト

ページレイアウト:ページ分割と法律文書形式の番号付け

契約書、仕様書、報告書、規程など、文書の形をとる作業のための 2 つのプラグインです。実際のページの境界、ヘッダー、フッター、ページ番号を表示するリアルタイムのページ分割表示と、条項番号を持つ文書のための多階層の法律文書形式の番号付け(1、1.1、1.1.1)があります。どちらも標準ライセンスに含まれています。連続した DOM を実際の用紙の寸法にどう対応させるかについては ブラウザーのエディターでページ分割表示が動く仕組みを、番号付けについては CSS カウンターによる法律文書形式の番号付けを参照してください。

ページ分割表示

ページ表示では、編集領域を実際のページ幅の用紙として描画し、各ページに境界、ページ番号、必要に応じてヘッダーとフッターを描きます。ワープロの印刷レイアウト表示と同じものです。これは表示のためだけのもので、描画したものがコンテンツに書き込まれることはなく、保存する HTML はページ表示のオン/オフにかかわらずバイト単位で同一です。

エディターの後でプラグインを読み込み、独自の UI から切り替えます。

<script src="richtexteditor/rte.js"></script>
<script src="richtexteditor/plugins/pagination.js"></script>

<script>
  var editor = new RichTextEditor("#editor");

  editor.setPageView(true);       // turn page view on
  editor.togglePageView();        // flip it
  editor.isPageView();            // -> true | false
  editor.getPageCount();          // -> number of pages
  editor.getPageGeometry();       // -> { pageWidth, pageHeight, margins..., contentHeight }
</script>

改ページはブロックの境界で行われるので、段落、表の行、画像が途中で分割されることはありません。強制的な改ページ(ツールバーの insertpagebreak コマンドが挿入するもの)は、エクスポート時とまったく同じように、常に新しいページを始めます。

ページ設定

アプリが文書自体のページ設定を提供している場合、寸法はそこから取得されるので、画面に表示されるものは PDF や Word へのエクスポートの結果と一致します。実行時に設定することもできます。

editor.setPageSetup({
  format: "Letter",          // A4 | Letter | Legal | A3 | A5 | Tabloid
  orientation: "portrait",   // portrait | landscape
  margins: { top: 1, right: 1, bottom: 1, left: 1 }   // inches, or "25mm" / "2cm" / "72pt" / "96px"
});
設定オプション既定値用途
paginationEnabledfalseページ表示をオンにした状態で開始します。
pageFormat"A4"文書にページ設定がない場合の用紙サイズ。
pageOrientation"portrait"縦向きまたは横向き。
pageMargins1in all round余白。インチまたは任意の CSS の長さで指定します。
paginationShowPageNumberstrueページごとの番号のバッジを描画します。
paginationShowPageCounttruePage 3 of 12 にするか Page 3 にするか。

ヘッダーとフッター

ヘッダーとフッターの HTML はすべてのページで繰り返され、{page} と {total} のプレースホルダーを使えます。

editor.setPageSetup({
  headerHtml: "Master Services Agreement &mdash; Acme Corp",
  footerHtml: "Page {page} of {total} &middot; Confidential"
});