Поставьте стол
Есть плавающие таблицы и встроенные таблицы:
- Вводные таблицы Они располагаются на том же уровне, что и текст, и помещаются в поток текста, который окружает таблицу выше и ниже. Встроенные таблицы всегда будут отображаться между абзацами, где вы их разместили.
- Плавающие столы наложены на текст, а положение таблицы относительно абзаца определяется якорем таблицы. Из-за этого на положение плавающей таблицы в документе влияют настройки вертикального и горизонтального позиционирования.
Иногда нужно поместить таблицу в документ определенным образом. Для этого нужно использовать инструменты выравнивания и установить отступы между таблицей и окружающим текстом.
В этой статье мы обсудим, какие варианты 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); |