Расположите стол

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

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

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

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

Укажите положение встроенной таблицы

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

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Tables.docx")
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()
# Align the table to the center of the page.
table.alignment = aw.tables.TableAlignment.CENTER

Получите плавающее выравнивание таблицы

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

С помощью other types of text wrapping вы можете получить встроенное выравнивание таблицы, используя свойство Alignment.

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Tables.docx")
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()
if table.text_wrapping == aw.tables.TextWrapping.AROUND:
print(table.relative_horizontal_alignment)
print(table.relative_vertical_alignment)
else:
print(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-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Table wrapped by text.docx")
for table in doc.first_section.body.tables:
table = table.as_table()
# If the table is floating type, then print its positioning properties.
if table.text_wrapping == aw.tables.TextWrapping.AROUND:
print(table.horizontal_anchor)
print(table.vertical_anchor)
print(table.absolute_horizontal_distance)
print(table.absolute_vertical_distance)
print(table.allow_overlap)
print(table.absolute_horizontal_distance)
print(table.relative_vertical_alignment)
print("..............................")

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

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

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

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Table wrapped by text.docx")
table = doc.first_section.body.tables[0]
table.absolute_horizontal_distance = 10
table.relative_vertical_alignment = aw.drawing.VerticalAlignment.CENTER
doc.save(ARTIFACTS_DIR + "WorkingWithTables.floating_table_position.docx")

Получить расстояние между таблицей и окружающим текстом

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

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

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

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET.git.
doc = aw.Document(MY_DIR + "Tables.docx")
print("\nGet distance between table left, right, bottom, top and the surrounding text.")
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()
print(table.distance_top)
print(table.distance_bottom)
print(table.distance_right)
print(table.distance_left)