页面生成
页面生成
Aspose.PDF FOSS for .NET 为生成 PDF 内容提供基于段落的布局引擎。表格、浮动框、页眉/页脚和印章让您能够在不手动构建内容流操作符的情况下构建结构化页面。
添加段落
Page.Paragraphs 是添加内容元素的入口点。
using var doc = new Document();
var page = doc.Pages.Add();
page.Paragraphs.Add(new TextFragment("Hello, PDF!"));
doc.Save("hello.pdf");表格
Table 支持行、单元格、列宽、边框和文本状态。
var table = new Table();
table.ColumnWidths = "100 200 100";
var row = table.Rows.Add();
row.Cells.Add("Name");
row.Cells.Add("Description");
row.Cells.Add("Price");
page.Paragraphs.Add(table);单元格格式设置
Cells.Add 返回一个 Cell,您可以在其中配置边框、填充和嵌套内容。
var cell = row.Cells.Add("Styled cell");
cell.Border = new BorderInfo(BorderSide.All, 0.5f);
cell.Margin = new MarginInfo(5, 5, 5, 5);浮动框
FloatingBox 在页面上以绝对坐标定位内容。
var box = new FloatingBox(200, 100);
box.Left = 72;
box.Top = 700;
box.Paragraphs.Add(new TextFragment("Positioned text"));
page.Paragraphs.Add(box);页眉和页脚
HeaderFooter 在页面的顶部或底部添加重复内容。
var header = HeaderFooter.FromText("Document Title");
header.ApplyAsHeader(page);
var footer = HeaderFooter.FromText("Page {0}");
footer.ApplyAsFooter(page);页面戳记
PdfPageStamp 将一个 PDF 页面上的内容覆盖到另一个页面上。
var stamp = new PdfPageStamp("watermark.pdf");
stamp.Put(page);技巧与最佳实践
- 使用
Table.ColumnWidths作为以空格分隔的点值字符串来控制布局。 FloatingBox对于绝对定位很有用 — 与Table结合使用以实现结构化内容。HeaderFooter.FromText支持{0}作为页码占位符。- 在调用
Save之前添加所有段落 — 布局引擎按顺序处理内容。 - 使用
BorderInfo为表格、单元格和浮动框添加边框。
常见问题
| Issue | Cause | Fix |
|---|---|---|
| 表格溢出页面 | 单页行数过多 | 库会自动分页;如有需要可调整页边距 |
| 标题未显示 | ApplyAsHeader 在 Save 之后调用 | 在保存前应用标题 |
| FloatingBox 位置错误 | 坐标以段落单位从左上角测量 | 确认单位符合预期 |
常见问题
我可以创建多页表格吗?
是的。当表格超过可用页面高度时,它会自动在下一页继续。
如何向表格单元格添加图像?
创建一个 Image 段落并将其添加到单元格的 Paragraphs 集合中。
我可以将数组中的数据导入到表格中吗?
是的。使用 Table.ImportArray 将二维数组填充到表格中。
API 参考摘要
| Class / Method | Description |
|---|---|
Paragraphs | 页面上的有序内容元素 |
Paragraphs.Add | 添加段落元素(文本、表格、图形等) |
Table | 包含行、单元格和列宽的网格布局 |
Table.ImportArray | 从数组填充表格 |
Rows | 表格中的行集合 |
Cells | 表格行中的单元格集合 |
BorderInfo | 表格、单元格和框的边框样式 |
FloatingBox | 绝对定位的内容容器 |
HeaderFooter | 可重复的页眉或页脚内容 |
HeaderFooter.FromText | 从文本模板创建页眉/页脚 |
PdfPageStamp | 将 PDF 页面叠加为印章 |