页面生成

页面生成

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 为表格、单元格和浮动框添加边框。

常见问题

IssueCauseFix
表格溢出页面单页行数过多库会自动分页;如有需要可调整页边距
标题未显示ApplyAsHeaderSave 之后调用在保存前应用标题
FloatingBox 位置错误坐标以段落单位从左上角测量确认单位符合预期

常见问题

我可以创建多页表格吗?

是的。当表格超过可用页面高度时,它会自动在下一页继续。

如何向表格单元格添加图像?

创建一个 Image 段落并将其添加到单元格的 Paragraphs 集合中。

我可以将数组中的数据导入到表格中吗?

是的。使用 Table.ImportArray 将二维数组填充到表格中。


API 参考摘要

Class / MethodDescription
Paragraphs页面上的有序内容元素
Paragraphs.Add添加段落元素(文本、表格、图形等)
Table包含行、单元格和列宽的网格布局
Table.ImportArray从数组填充表格
Rows表格中的行集合
Cells表格行中的单元格集合
BorderInfo表格、单元格和框的边框样式
FloatingBox绝对定位的内容容器
HeaderFooter可重复的页眉或页脚内容
HeaderFooter.FromText从文本模板创建页眉/页脚
PdfPageStamp将 PDF 页面叠加为印章

另见

 中文