单元格布局

本教程介绍如何使用 Aspose.Words for .NET 在 Word 文档的表格单元格内布局形状。通过调整形状属性并使用布局选项,您可以控制单元格内形状的位置和外观。

先决条件

要学习本教程,您需要具备以下条件:

  • 已安装 Aspose.Words for .NET 库。
  • C# 和 Word 文档文字处理的基础知识。

第 1 步:设置文档目录

首先设置文档目录的路径。代替"YOUR DOCUMENT DIRECTORY"与要保存文档的目录的实际路径。

string dataDir = "YOUR DOCUMENT DIRECTORY";

第 2 步:创建新文档和 DocumentBuilder

创建一个新实例Document类和一个DocumentBuilder对象使用该文档。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

第 3 步:构建表格

使用StartTable, EndTable, InsertCell, 和Write的方法DocumentBuilder对象来构建一个表。使用以下命令设置所需的行高和高度规则RowFormat特性。

builder.StartTable();
builder.RowFormat.Height = 100;
builder.RowFormat.HeightRule = HeightRule.Exactly;
for (int i = 0; i < 31; i++)
{
    if (i != 0 && i % 7 == 0) builder.EndRow();
    builder.InsertCell();
    builder.Write("Cell contents");
}
builder.EndTable();

第 4 步:创建形状并设置其格式

创建一个Shape对象并配置其属性来定义水印。使用以下命令设置要在单元格内布局的形状IsLayoutInCell财产。

Shape watermark = new Shape(doc, ShapeType.TextPlainText)
{
    RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
    RelativeVerticalPosition = RelativeVerticalPosition.Page,
    IsLayoutInCell = true,
    Width = 300,
    Height = 70,
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Center,
    Rotation = -40
};

第 5 步:自定义形状

通过设置以下属性来自定义水印形状的外观和文本FillColor, StrokeColor, TextPath, Name, WrapType, ETC。

watermark.FillColor = Color.Gray;
watermark.StrokeColor = Color.Gray;
watermark.TextPath.Text = "watermarkText";
watermark.TextPath.FontFamily = "Arial";
watermark.Name = $"WaterMark_{Guid.NewGuid()}";
watermark.WrapType = WrapType.None;

第 6 步:将形状插入文档中

使用以下命令将水印形状插入到文档中InsertNode的方法DocumentBuilder目的。使用定位形状MoveTo方法将其放置在文档中上次运行之后。

Run run = doc.GetChildNodes(NodeType.Run, true)[doc.GetChildNodes(NodeType.Run, true).Count - 1] as Run;
builder.MoveTo(run);
builder.InsertNode(watermark);

第7步:保存文档

使用以下命令将文档保存到指定目录Save方法。提供所需的文件名和适当的文件扩展名。在此示例中,我们将文档另存为“WorkingWithShapes.LayoutInCell.docx”。

doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2010);
doc

.Save(dataDir + "WorkingWithShapes.LayoutInCell.docx");

使用 Aspose.Words for .NET 在单元格中布局的示例源代码

	//文档目录的路径
	string dataDir = "YOUR DOCUMENT DIRECTORY";

	Document doc = new Document();
	DocumentBuilder builder = new DocumentBuilder(doc);
	builder.StartTable();
	builder.RowFormat.Height = 100;
	builder.RowFormat.HeightRule = HeightRule.Exactly;
	for (int i = 0; i < 31; i++)
	{
		if (i != 0 && i % 7 == 0) builder.EndRow();
		builder.InsertCell();
		builder.Write("Cell contents");
	}
	builder.EndTable();
	Shape watermark = new Shape(doc, ShapeType.TextPlainText)
	{
		RelativeHorizontalPosition = RelativeHorizontalPosition.Page,
		RelativeVerticalPosition = RelativeVerticalPosition.Page,
		IsLayoutInCell = true, //如果将形状放入单元格中,则显示表格单元格外部的形状。
		Width = 300,
		Height = 70,
		HorizontalAlignment = HorizontalAlignment.Center,
		VerticalAlignment = VerticalAlignment.Center,
		Rotation = -40
	};
	watermark.FillColor = Color.Gray;
	watermark.StrokeColor = Color.Gray;
	watermark.TextPath.Text = "watermarkText";
	watermark.TextPath.FontFamily = "Arial";
	watermark.Name = $"WaterMark_{Guid.NewGuid()}";
	watermark.WrapType = WrapType.None;
	Run run = doc.GetChildNodes(NodeType.Run, true)[doc.GetChildNodes(NodeType.Run, true).Count - 1] as Run;
	builder.MoveTo(run);
	builder.InsertNode(watermark);
	doc.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2010);
	doc.Save(dataDir + "WorkingWithShapes.LayoutInCell.docx");

就是这样!您已使用 Aspose.Words for .NET 在 Word 文档的表格单元格内成功布置了形状。