セル内のレイアウト

このチュートリアルでは、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、など。

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 を使用した Layout In Cell のソース コード例

	//ドキュメントディレクトリへのパス
	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 文書の表のセル内に図形を正常にレイアウトできました。