Поставьте стол

Есть плавающие таблицы и встроенные таблицы:

  • Вводные таблицы Они располагаются на том же уровне, что и текст, и помещаются в поток текста, который окружает таблицу выше и ниже. Встроенные таблицы всегда будут отображаться между абзацами, где вы их разместили.
  • Плавающие столы наложены на текст, а положение таблицы относительно абзаца определяется якорем таблицы. Из-за этого на положение плавающей таблицы в документе влияют настройки вертикального и горизонтального позиционирования.

Иногда нужно поместить таблицу в документ определенным образом. Для этого нужно использовать инструменты выравнивания и установить отступы между таблицей и окружающим текстом.

В этой статье мы обсудим, какие варианты Aspose.Words Предусматривается позиционирование.

Укажите позицию Inline Table

Вы можете установить положение встроенной таблицы, используя Aspose.Words API и Alignment собственность. Таким образом, можно настроить выравнивание таблицы относительно страницы документа.

Следующий пример кода показывает, как установить положение встроенной таблицы:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// Align the table to the center of the page.
table.Alignment = TableAlignment.Center;

Выравнивание плавающего стола

Если обертка текста таблицы установлена Around, Вы можете получить горизонтальное и вертикальное выравнивание таблицы, используя RelativeHorizontalAlignment и RelativeVerticalAlignment свойств.

С Другие типы текстовой обертки, Вы можете получить выравнивание таблицы, используя Alignment собственность.

Следующий пример кода показывает, как получить выравнивание таблицы:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
if (table.TextWrapping == TextWrapping.Around)
{
Console.WriteLine(table.RelativeHorizontalAlignment);
Console.WriteLine(table.RelativeVerticalAlignment);
}
else
{
Console.WriteLine(table.Alignment);
}

Позиция плавающего стола

Положение плавающего стола определяется с использованием следующих свойств:

  • HorizontalAnchor Объект для вычисления горизонтального положения плавучей таблицы
  • VerticalAnchor Объект для вычисления вертикального положения плавучей таблицы
  • AbsoluteHorizontalDistance абсолютное горизонтальное положение плавающего стола
  • AbsoluteVerticalDistance абсолютное вертикальное положение плавающего стола
  • AllowOverlap - возможность включить/отключить перекрытие с другими плавающими объектами
  • RelativeHorizontalAlignment - относительное горизонтальное выравнивание плавающего стола.
  • RelativeVerticalAlignment - относительное вертикальное выравнивание плавающего стола.

Следующий пример кода показывает, как получить положение плавающей таблицы:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Table wrapped by text.docx");
foreach (Table table in doc.FirstSection.Body.Tables)
{
// If the table is floating type, then print its positioning properties.
if (table.TextWrapping == TextWrapping.Around)
{
Console.WriteLine(table.HorizontalAnchor);
Console.WriteLine(table.VerticalAnchor);
Console.WriteLine(table.AbsoluteHorizontalDistance);
Console.WriteLine(table.AbsoluteVerticalDistance);
Console.WriteLine(table.AllowOverlap);
Console.WriteLine(table.AbsoluteHorizontalDistance);
Console.WriteLine(table.RelativeVerticalAlignment);
Console.WriteLine("..............................");
}
}

Установите положение плавающего стола

Как и получить, вы можете установить положение плавающего стола, используя то же самое. Aspose.Words API.

Важно знать, что выравнивание и горизонтальное и вертикальное расстояние являются комбинированными свойствами, и одно может сбросить другое. Например, установить RelativeHorizontalAlignment Сбросит ли он AbsoluteHorizontalDistance по умолчанию и наоборот. То же самое true для вертикального расположения.

Следующий пример кода показывает, как установить положение плавающей таблицы:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Table wrapped by text.docx");
Table table = doc.FirstSection.Body.Tables[0];
table.AbsoluteHorizontalDistance = 10;
table.RelativeVerticalAlignment = VerticalAlignment.Center;
doc.Save(ArtifactsDir + "WorkingWithTables.FloatingTablePosition.docx");

Расстояние между столом и окружающим текстом

Aspose.Words Также предоставляется возможность узнать расстояния между таблицами и окружающими текстами:

  • DistanceTop Значение расстояния сверху
  • DistanceBottom Значение расстояния восприятия
  • DistanceRight - значение расстояния справа
  • DistanceLeft Значение расстояния слева

Следующий пример кода показывает, как получить расстояние между таблицей и окружающим ее текстом:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Console.WriteLine("\nGet distance between table left, right, bottom, top and the surrounding text.");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
Console.WriteLine(table.DistanceTop);
Console.WriteLine(table.DistanceBottom);
Console.WriteLine(table.DistanceRight);
Console.WriteLine(table.DistanceLeft);