← 全部文档
页面布局

页面布局:分页与法律文书编号

两个面向文档类工作的插件——合同、规格说明、报告、制度文件。一个是实时的分页页面视图,显示真实的分页边界、页眉、页脚和页码;另一个是用于条款编号文档的多级法律文书编号(1、1.1、1.1.1)。两者都包含在标准授权中。关于连续的 DOM 如何投射到真实的纸张尺寸上,请参阅浏览器编辑器中的分页页面视图如何工作;编号部分请参阅用 CSS 计数器实现法律文书编号。

分页页面视图

页面视图把可编辑区域渲染为与真实页宽一致的纸张栏,并为每一页绘制分页边界、页码以及可选的页眉/页脚——也就是文字处理软件提供的打印布局视图。它纯粹是显示层面的:它绘制的任何内容都不会写入您的内容中,无论页面视图开启与否,保存的 HTML 都逐字节相同。

在编辑器之后加载该插件,然后通过您自己的界面切换它:

<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绘制每页的页码标记。
paginationShowPageCounttrue显示 Page 3 of 12 还是 Page 3。

页眉和页脚

页眉和页脚 HTML 会在每一页上重复,并支持 {page} 和 {total} 占位符:

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