セル内のレイアウト
このチュートリアルでは、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 文書の表のセル内に図形を正常にレイアウトできました。