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 Controle | Símbolo | Propósito | Uso comum |
|---|---|---|---|
ColumnBreak | N / D | Próxima coluna | Layouts com várias colunas |
LineBreak | ↓ | Nova linha, mesmo parágrafo | Endereços, listas |
LineFeed | LF | Alimentação em linha | Formatação de texto |
NonBreakingSpace | Espaço inquebrável | Mantenha as palavras juntas | |
PageBreak | ⤶ | Nova página | Quebras de capítulo |
ParagraphBreak | ¶ | Novo parágrafo | Separação de texto |
SectionBreak | § | Nova seção | Alteração de cabeçalhos/rodapés |
Tab | → | Alinhamento de tabulação | alinhamento colunar |
Melhores práticas
Controle de layout
- Use adequadamente - Escolha o controle adequado às suas necessidades de layout.
- Saída de teste - Verifique se os caracteres de controle produzem o layout desejado
- Espaçamento consistente - Utilize quebras de parágrafo de forma consistente para garantir o espaçamento adequado.
- Evite pausas excessivas. - Não abuse das quebras de página/seção.
Estrutura do documento
- Seções lógicas - Utilize quebras de seção para divisões lógicas do documento.
- Paginação adequada - Use quebras de página para controlar onde as páginas são divididas.
- Alinhamento - Use abas para necessidades simples de alinhamento.
- Formatação de endereço - Use quebras de linha para endereços com várias linhas.
Manutenção de modelos
- Utilização do documento - Comente onde forem utilizados caracteres de controle complexos.
- Clareza visual - Formatar modelo para facilitar a leitura
- Teste minuciosamente - Verificar a saída com diferentes conjuntos de dados
- 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.
:::