Layout na célula

Este tutorial explica como fazer o layout de uma forma dentro de uma célula de tabela em um documento do Word usando Aspose.Words for .NET. Ao ajustar as propriedades da forma e usar as opções de layout, você pode controlar o posicionamento e a aparência da forma dentro da célula.

Pré-requisitos

Para seguir este tutorial, você precisa ter o seguinte:

  • Biblioteca Aspose.Words para .NET instalada.
  • Conhecimento básico de C# e processamento de palavras com documentos Word.

Etapa 1: configurar o diretório de documentos

Comece configurando o caminho para o diretório do seu documento. Substituir"YOUR DOCUMENT DIRECTORY" com o caminho real para o diretório onde você deseja salvar o documento.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Etapa 2: Crie um novo documento e DocumentBuilder

Crie uma nova instância doDocument aula e umDocumentBuilder objeto para trabalhar com o documento.

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

Etapa 3: construir a mesa

Use oStartTable, EndTable, InsertCell , eWrite métodos doDocumentBuilder objeto para construir uma mesa. Defina a altura da linha desejada e a regra de altura usando oRowFormat propriedades.

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();

Etapa 4: crie e formate a forma

Criar umaShape objeto e configure suas propriedades para definir a marca d’água. Defina a forma a ser disposta dentro de uma célula usando oIsLayoutInCell propriedade.

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
};

Etapa 5: personalize a forma

Personalize a aparência e o texto da forma da marca d’água definindo propriedades comoFillColor, 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;

Etapa 6: insira a forma no documento

Insira o formato da marca d’água no documento usando oInsertNode método doDocumentBuilder objeto. Posicione a forma usando oMoveTo método para colocá-lo após a última execução no documento.

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

Etapa 7: salve o documento

Salve o documento no diretório especificado usando oSave método. Forneça o nome de arquivo desejado com a extensão de arquivo apropriada. Neste exemplo, salvamos o documento como “WorkingWithShapes.LayoutInCell.docx”.

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

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

Exemplo de código-fonte para Layout In Cell usando Aspose.Words for .NET

	// Caminho para o diretório do seu documento
	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, // Exiba a forma fora da célula da tabela se ela for colocada em uma célula.
		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");

É isso! Você definiu com sucesso uma forma dentro de uma célula de tabela em um documento do Word usando Aspose.Words for .NET.