跳到主要内容

文本控件 - 行和分页符指南

文本控制字符可对文档的布局和结构进行精确控制。 PDF4me 模板。这些特殊的控制字符使您能够以编程方式管理生成的文档中的换行符、分页符、列结构、段落格式和其他布局元素。


可用控制字符

PDF4me 模板支持以下用于文档结构管理的控制字符:

分栏

在多列布局中插入分栏符,将内容移至下一列。

<<[ControlChar.ColumnBreak]>>

使用案例: 采用多栏布局的新闻简报、宣传册或文档。

例子:

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

换行符

在同一段落内插入换行符,直接移到下一行,而不另起一段。

<<[ControlChar.LineBreak]>>

使用案例: 单个段落内可包含地址、诗歌或多行内容。

例子:

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

输出:

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

线路进给

插入换行符,类似于在文本编辑器中按 Enter 键。

<<[ControlChar.LineFeed]>>

使用案例: 创建垂直间距或分隔文本行。


不间断空间

插入一个空格以防止换行,使单词保持在同一行上。

<<[ControlChar.NonBreakingSpace]>>

使用案例: 将单位与数字(例如,“100 公里”)、名称放在一起,或防止不必要的换行。

例子:

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

确保“公里”与数字保持在同一行。


分页符

插入分页符,强制内容从新页面开始。

<<[ControlChar.PageBreak]>>

使用案例: 分隔主要部分,确保内容从新页面开始,或控制分页。

例子:

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

段落分隔符

插入段落分隔符,结束当前段落并开始新段落。

<<[ControlChar.ParagraphBreak]>>

使用案例: 创建清晰的段落、添加垂直间距或调整文本结构。

例子:

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

分节符

插入分节符,创建一个具有独立格式的新文档节。

<<[ControlChar.SectionBreak]>>

使用案例: 每个章节可以采用不同的页眉/页脚,改变页面方向(从纵向到横向),或者采用独立的页码。


标签页

插入制表符以进行对齐。

<<[ControlChar.Tab]>>

使用案例: 对齐文本、创建无表格列或缩进。

例子:

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

实际应用

应用1:多章节文件

模板:

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

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

Chapter 3: Conclusion
<<[chapter3Content]>>

应用 2:格式化地址块

模板:

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

应用3:无表格的表格数据

模板:

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

应用案例 4:简报布局

模板:

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

组合控制字符

多个控制字符可以组合使用,实现复杂的布局。

示例:结构化联系人列表

模板:

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

循环中的控制字符

在 foreach 循环中使用控制字符进行动态格式化。

示例:带分页符的部门列表

模板:

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

每个部门都有自己的页面。


高级格式化技巧

条件分页符

模板:

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

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

在各节之间添加分页符,但不在最后一节之后添加分页符。


动态间距

模板:

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

控制字符引用

控制角色象征目的常用
ColumnBreak不适用下一栏多列布局
LineBreak换行,同一段落地址、列表
LineFeed低频线路进料文本格式
NonBreakingSpace 不可分割的空间将单词放在一起
PageBreak新页面章节分隔符
ParagraphBreak新段落文本分隔
SectionBreak§新章节页眉/页脚发生变化
Tab制表符对齐列对齐

最佳实践

布局控制

  1. 合理使用 - 根据您的布局需求选择合适的控件
  2. 测试输出 - 验证控制字符是否产生所需的布局
  3. 间距一致 - 始终使用段落分隔符来保持间距。
  4. 避免过度休息。 - 不要过度使用分页符/分节符

文档结构

  1. 逻辑部分 - 使用分节符进行文档的逻辑划分
  2. 正确的分页 - 使用分页符来控制页面分割的位置
  3. 结盟 - 使用制表符满足简单的对齐需求
  4. 地址格式 - 多行地址请使用换行符

模板维护

  1. 文件使用 - 注释复杂控制字符的使用位置
  2. 视觉清晰度 - 提高可读性的格式模板
  3. 彻底测试 - 使用不同的数据集验证输出结果
  4. 版本控制 - 跟踪模板结构的更改

故障排除

常见问题

问题: 输出中出现意外分页符
解决方案: 检查是否存在意外情况 PageBreak 或者 SectionBreak 用法

问题: 文本未与制表符对齐
解决方案: 确认制表位已设置 Word 模板

问题: 列分隔符不起作用
解决方案: 确保文档已配置列布局。

问题: 非断裂空间不阻止断裂
解决方案: 检查是否存在过长的字符串,即使使用了不间断空格,也会导致字符串强制换行。

问题: 文档中留白过多
解决方案: 检查段落分隔符的使用情况;可能过多。


完整示例:多节报告

模板:

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

:::提示:布局测试

务必使用实际数据生成测试文档,以验证控制字符是否能产生预期的布局。不同的内容长度可能会影响换行符和间距的显示效果。

:::

:::警告:分节符

分节符会创建具有独立格式的新文档节。请谨慎使用,因为它们会影响后续内容的页眉、页脚、页码和方向。

:::