← Toda a documentação
Layout de página

Layout de página: paginação e numeração jurídica

Dois plugins para trabalhos em formato de documento — contratos, especificações, relatórios, políticas. Uma visualização paginada ao vivo, que mostra os limites reais das páginas, cabeçalhos, rodapés e números de página, e a numeração jurídica multinível (1, 1.1, 1.1.1) para documentos numerados por cláusulas. Os dois vêm na licença padrão. Para entender como um DOM contínuo é projetado sobre a geometria real do papel, veja como funciona a visualização paginada em um editor no navegador; a parte de numeração é tratada em numeração jurídica com contadores CSS.

Visualização paginada

A visualização de página renderiza a área editável como uma coluna de papel com a largura real da página e desenha um limite, um número de página e, opcionalmente, um cabeçalho/rodapé para cada página — a visualização de layout de impressão que um processador de texto oferece. Ela é puramente visual: nada do que ela desenha é gravado no seu conteúdo, e o HTML que você salva é idêntico byte a byte com a visualização de página ativada ou desativada.

Carregue o plugin depois do editor e alterne a visualização pela sua própria interface:

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

As páginas são quebradas nos limites dos blocos, então um parágrafo, uma linha de tabela ou uma imagem nunca é dividido ao meio. Uma quebra forçada — a que o comando insertpagebreak da barra de ferramentas insere — sempre inicia uma nova página, exatamente como na exportação.

Configuração de página

A geometria vem da configuração de página do próprio documento quando a sua aplicação fornece uma, de modo que o que você vê na tela corresponde ao que as exportações para PDF e Word produzem. Você também pode defini-la em tempo de execução:

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"
});
Opção de configuraçãoPadrãoFinalidade
paginationEnabledfalseIniciar com a visualização de página ativada.
pageFormat"A4"Tamanho do papel quando o documento não tem configuração de página.
pageOrientation"portrait"Retrato ou paisagem.
pageMargins1in all roundMargens, em polegadas ou em qualquer unidade de comprimento CSS.
paginationShowPageNumberstrueDesenhar o selo com o número de cada página.
paginationShowPageCounttruePage 3 of 12 em vez de Page 3.

Cabeçalhos e rodapés

O HTML do cabeçalho e do rodapé se repete em todas as páginas e aceita os placeholders {page} e {total}:

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