Макет в ячейке
В этом руководстве объясняется, как разместить фигуру в ячейке таблицы в документе 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.