Diseño en celda

Este tutorial explica cómo diseñar una forma dentro de una celda de una tabla en un documento de Word usando Aspose.Words para .NET. Al ajustar las propiedades de la forma y utilizar las opciones de diseño, puede controlar la posición y la apariencia de la forma dentro de la celda.

Requisitos previos

Para seguir este tutorial, necesita tener lo siguiente:

  • Aspose.Words para la biblioteca .NET instalada.
  • Conocimientos básicos de C# y procesamiento de textos con documentos Word.

Paso 1: configurar el directorio de documentos

Comience configurando la ruta a su directorio de documentos. Reemplazar"YOUR DOCUMENT DIRECTORY" con la ruta real al directorio donde desea guardar el documento.

string dataDir = "YOUR DOCUMENT DIRECTORY";

Paso 2: cree un nuevo documento y DocumentBuilder

Crear una nueva instancia delDocument clase y unDocumentBuilder objeto de trabajar con el documento.

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

Paso 3: construye la mesa

Utilizar elStartTable, EndTable, InsertCell , yWrite métodos de laDocumentBuilder objeto para construir una mesa. Establezca la altura de fila deseada y la regla de altura usando elRowFormat propiedades.

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

Paso 4: crea y formatea la forma

Crear unShape objeto y configurar sus propiedades para definir la marca de agua. Establezca la forma que se presentará dentro de una celda usando elIsLayoutInCell propiedad.

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

Paso 5: personaliza la forma

Personalice la apariencia y el texto de la forma de la marca de agua estableciendo propiedades 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;

Paso 6: inserte la forma en el documento

Inserte la forma de la marca de agua en el documento usando elInsertNode método de laDocumentBuilder objeto. Coloque la forma usando elMoveTo método para colocarlo después de la última ejecución en el documento.

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

Paso 7: guarde el documento

Guarde el documento en el directorio especificado utilizando elSave método. Proporcione el nombre de archivo deseado con la extensión de archivo adecuada. En este ejemplo, guardamos el documento como “WorkingWithShapes.LayoutInCell.docx”.

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

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

Código fuente de ejemplo para Layout In Cell usando Aspose.Words para .NET

	// Ruta a su directorio de documentos
	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, // Muestre la forma fuera de la celda de la tabla si se colocará en una celda.
		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");

¡Eso es todo! Ha diseñado con éxito una forma dentro de una celda de una tabla en un documento de Word usando Aspose.Words para .NET.