Макет в ячейке

В этом руководстве объясняется, как разместить фигуру в ячейке таблицы в документе Word с помощью Aspose.Words для .NET. Настраивая свойства фигуры и используя параметры макета, вы можете управлять расположением и внешним видом фигуры в ячейке.

Предварительные условия

Чтобы следовать этому руководству, вам необходимо иметь следующее:

  • Установлена библиотека Aspose.Words для .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 для .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");

Вот и все! Вы успешно разместили фигуру в ячейке таблицы в документе Word с помощью Aspose.Words для .NET.