Pular para o conteúdo principal

Controles de texto - Guia de quebra de linha e página

Os caracteres de controle de texto fornecem controle preciso sobre o layout e a estrutura do documento. PDF4me modelos. Esses caracteres de controle especiais permitem gerenciar quebras de linha, quebras de página, estruturas de coluna, formatação de parágrafo e outros elementos de layout programaticamente em seus documentos gerados.


Caracteres de controle disponíveis

PDF4me Os modelos suportam os seguintes caracteres de controle para gerenciamento da estrutura do documento:

Quebra de coluna

Insere uma quebra de coluna, movendo o conteúdo para a próxima coluna em layouts com várias colunas.

<<[ControlChar.ColumnBreak]>>

Caso de uso: Boletins informativos, brochuras ou documentos com várias colunas e layouts em colunas.

Exemplo:

Column 1 Content...
<<[ControlChar.ColumnBreak]>>
Column 2 Content...

Quebra de linha

Insere uma quebra de linha dentro do mesmo parágrafo, passando para a próxima linha sem iniciar um novo parágrafo.

<<[ControlChar.LineBreak]>>

Caso de uso: Discursos, poesias ou conteúdo com várias linhas em um único parágrafo.

Exemplo:

Customer Name: <<[customerName]>><<[ControlChar.LineBreak]>>
Address Line 1: <<[address1]>><<[ControlChar.LineBreak]>>
Address Line 2: <<[address2]>><<[ControlChar.LineBreak]>>
City, State ZIP: <<[city]>>, <<[state]>> <<[zipCode]>>

Saída:

Customer Name: John Smith
Address Line 1: 123 Main Street
Address Line 2: Suite 100
City, State ZIP: New York, NY 10001

Alimentação de linha

Insere um caractere de quebra de linha, semelhante a pressionar Enter em um editor de texto.

<<[ControlChar.LineFeed]>>

Caso de uso: Criar espaçamento vertical ou separar linhas de texto.


Espaço não separável

Insere um espaço que impede a quebra de linha, mantendo as palavras juntas na mesma linha.

<<[ControlChar.NonBreakingSpace]>>

Caso de uso: Manter unidades com números (por exemplo, "100 km"), nomes juntos ou evitar quebras de linha indesejadas.

Exemplo:

Distance: <<[distance]>><<[ControlChar.NonBreakingSpace]>>kilometers

Garante que "quilômetros" permaneça na mesma linha que o número.


Quebra de página

Insere uma quebra de página, forçando o conteúdo a começar em uma nova página.

<<[ControlChar.PageBreak]>>

Caso de uso: Separar seções principais, garantir que o conteúdo comece em novas páginas ou controlar a paginação.

Exemplo:

Section 1 Content...
<<[ControlChar.PageBreak]>>
Section 2 Content...

Quebra de parágrafo

Insere uma quebra de parágrafo, finalizando o parágrafo atual e iniciando um novo.

<<[ControlChar.ParagraphBreak]>>

Caso de uso: Criar parágrafos distintos, adicionar espaçamento vertical ou estruturar o texto.

Exemplo:

First paragraph text here.<<[ControlChar.ParagraphBreak]>>
Second paragraph text here.<<[ControlChar.ParagraphBreak]>>
Third paragraph text here.

Quebra de seção

Insere uma quebra de seção, criando uma nova seção do documento com formatação independente.

<<[ControlChar.SectionBreak]>>

Caso de uso: Cabeçalhos/rodapés diferentes por seção, alterações de orientação (retrato para paisagem) ou numeração de páginas independente.


Aba

Insere um caractere de tabulação para fins de alinhamento.

<<[ControlChar.Tab]>>

Caso de uso: Alinhamento de texto, criação de colunas sem tabelas ou recuo.

Exemplo:

Name:<<[ControlChar.Tab]>><<[customerName]>>
Email:<<[ControlChar.Tab]>><<[email]>>
Phone:<<[ControlChar.Tab]>><<[phone]>>

Aplicações práticas

Aplicação 1: Documento com Múltiplas Seções

Modelo:

Chapter 1: Introduction
<<[chapter1Content]>>
<<[ControlChar.PageBreak]>>

Chapter 2: Analysis
<<[chapter2Content]>>
<<[ControlChar.PageBreak]>>

Chapter 3: Conclusion
<<[chapter3Content]>>

Aplicação 2: Bloco de Endereços Formatado

Modelo:

<<[companyName]:caps>><<[ControlChar.LineBreak]>>
<<[address1]>><<[ControlChar.LineBreak]>>
<<if [address2 != null]>><<[address2]>><<[ControlChar.LineBreak]>><</if>>
<<[city]>>, <<[state]>><<[ControlChar.NonBreakingSpace]>><<[zipCode]>><<[ControlChar.LineBreak]>>
<<[country]>>

Aplicação 3: Dados tabulares sem tabelas

Modelo:

Item<<[ControlChar.Tab]>>Quantity<<[ControlChar.Tab]>>Price
<<foreach [item in items]>>
<<[item.name]>><<[ControlChar.Tab]>><<[item.qty]>><<[ControlChar.Tab]>>$<<[item.price]>><<[ControlChar.LineBreak]>>
<</foreach>>

Aplicação 4: Layout de Boletim Informativo

Modelo:

Article 1 Content (Column 1)...
<<[ControlChar.ColumnBreak]>>
Article 2 Content (Column 2)...
<<[ControlChar.ColumnBreak]>>
Article 3 Content (Column 3)...
<<[ControlChar.PageBreak]>>
Page 2 Content...

Combinando caracteres de controle

Vários caracteres de controle podem ser usados juntos para layouts complexos.

Exemplo: Lista de Contatos Estruturada

Modelo:

<<foreach [contact in contacts]>>
**<<[contact.name]:caps>>**<<[ControlChar.LineBreak]>>
Position: <<[contact.position]>><<[ControlChar.LineBreak]>>
Email: <<[contact.email]>><<[ControlChar.LineBreak]>>
Phone: <<[contact.phone]>><<[ControlChar.ParagraphBreak]>>
<</foreach>>

Caracteres de controle em loops

Utilize caracteres de controle dentro de laços foreach para formatação dinâmica.

Exemplo: Lista de departamentos com quebras de página

Modelo:

<<foreach [dept in departments]>>
**Department: <<[dept.name]>>**

<<[dept.description]>>

Employees:
<<foreach [emp in dept.employees]>>
• <<[emp.name]>> - <<[emp.role]>><<[ControlChar.LineBreak]>>
<</foreach>>

<<[ControlChar.PageBreak]>>
<</foreach>>

Cada departamento tem sua própria página.


Técnicas avançadas de formatação

Quebras de página condicionais

Modelo:

<<foreach [section in sections]>>
<<[section.title]>>
<<[section.content]>>

<<if [$index < sections.Count() - 1]>>
<<[ControlChar.PageBreak]>>
<</if>>
<</foreach>>

Adiciona quebras de página entre as seções, mas não após a última seção.


Espaçamento dinâmico

Modelo:

<<foreach [item in items]>>
<<[item.name]>><<[ControlChar.LineBreak]>>
<<if [item.hasDetails]>>
Details: <<[item.details]>><<[ControlChar.ParagraphBreak]>>
<</if>>
<</foreach>>

Referência de caractere de controle

Personagem de ControleSímboloPropósitoUso comum
ColumnBreakN / DPróxima colunaLayouts com várias colunas
LineBreakNova linha, mesmo parágrafoEndereços, listas
LineFeedLFAlimentação em linhaFormatação de texto
NonBreakingSpace Espaço inquebrávelMantenha as palavras juntas
PageBreakNova páginaQuebras de capítulo
ParagraphBreakNovo parágrafoSeparação de texto
SectionBreak§Nova seçãoAlteração de cabeçalhos/rodapés
TabAlinhamento de tabulaçãoalinhamento colunar

Melhores práticas

Controle de layout

  1. Use adequadamente - Escolha o controle adequado às suas necessidades de layout.
  2. Saída de teste - Verifique se os caracteres de controle produzem o layout desejado
  3. Espaçamento consistente - Utilize quebras de parágrafo de forma consistente para garantir o espaçamento adequado.
  4. Evite pausas excessivas. - Não abuse das quebras de página/seção.

Estrutura do documento

  1. Seções lógicas - Utilize quebras de seção para divisões lógicas do documento.
  2. Paginação adequada - Use quebras de página para controlar onde as páginas são divididas.
  3. Alinhamento - Use abas para necessidades simples de alinhamento.
  4. Formatação de endereço - Use quebras de linha para endereços com várias linhas.

Manutenção de modelos

  1. Utilização do documento - Comente onde forem utilizados caracteres de controle complexos.
  2. Clareza visual - Formatar modelo para facilitar a leitura
  3. Teste minuciosamente - Verificar a saída com diferentes conjuntos de dados
  4. Controle de versão - Rastrear alterações na estrutura do modelo

Solução de problemas

Problemas comuns

Emitir: Quebras de página inesperadas na saída
Solução: Verifique se há algo não intencional. PageBreak ou SectionBreak uso

Emitir: Texto desalinhado com as tabulações
Solução: Verifique se as tabulações estão configuradas em Word modelo

Emitir: Quebras de coluna não estão funcionando
Solução: Certifique-se de que o documento tenha o layout de colunas configurado.

Emitir: Espaços não interrompíveis que não impedem pausas.
Solução: Verifique se há sequências longas que forçam quebras, mesmo com espaços que não deveriam ser quebrados.

Emitir: Espaço em branco em excesso no documento.
Solução: Revisar o uso de quebras de parágrafo; pode ser excessivo.


Exemplo completo: Relatório com várias seções

Modelo:

<<var [reportTitle = "Annual Business Report"]>>
<<var [reportYear = 2024]>>
<<var [companyName = "Tech Innovations Inc."]>>

**<<[reportTitle]>> - <<[reportYear]>>**<<[ControlChar.LineBreak]>>
<<[companyName]>><<[ControlChar.ParagraphBreak]>>

**Executive Summary**<<[ControlChar.LineBreak]>>
<<[executiveSummary]>><<[ControlChar.PageBreak]>>

**Financial Overview**<<[ControlChar.LineBreak]>>
<<foreach [quarter in quarters]>>
Q<<[$index + 1]>> <<[reportYear]>>:<<[ControlChar.LineBreak]>>
Revenue:<<[ControlChar.Tab]>>$<<[quarter.revenue]:"F2">><<[ControlChar.LineBreak]>>
Expenses:<<[ControlChar.Tab]>>$<<[quarter.expenses]:"F2">><<[ControlChar.LineBreak]>>
Profit:<<[ControlChar.Tab]>>$<<[quarter.profit]:"F2">><<[ControlChar.ParagraphBreak]>>
<</foreach>>

<<[ControlChar.SectionBreak]>>

**Department Reports**<<[ControlChar.LineBreak]>>
<<foreach [dept in departments]>>
**<<[dept.name]>>**<<[ControlChar.LineBreak]>>
<<[dept.report]>><<[ControlChar.PageBreak]>>
<</foreach>>

:::Dica Teste de Layout Sempre gere documentos de teste com dados reais para verificar se os caracteres de controle produzem o layout desejado. Diferentes comprimentos de conteúdo podem afetar a aparência das quebras e do espaçamento.

:::

:::aviso Quebras de Seção As quebras de seção criam novas seções do documento com formatação independente. Use-as com cuidado, pois afetam cabeçalhos, rodapés, numeração de páginas e orientação do conteúdo subsequente.

:::