Расположите стол
Существуют плавающие таблицы и встроенные таблицы:
- 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-Java.git. | |
Document doc = new Document(getMyDir() + "Tables.docx"); | |
Table table = (Table) doc.getChild(NodeType.TABLE, 0, true); | |
// Align the table to the center of the page. | |
table.setAlignment(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-Java.git. | |
Document doc = new Document(getMyDir() + "Tables.docx"); | |
Table table = (Table) doc.getChild(NodeType.TABLE, 0, true); | |
if (table.getTextWrapping() == TextWrapping.AROUND) | |
{ | |
System.out.println(table.getRelativeHorizontalAlignment()); | |
System.out.println(table.getRelativeVerticalAlignment()); | |
} | |
else | |
{ | |
System.out.println(table.getAlignment()); | |
} |
Получить плавающее положение стола
Положение плавающей таблицы определяется с помощью следующих свойств:
- HorizontalAnchor – объект для вычисления горизонтального положения плавающей таблицы
- VerticalAnchor – объект для вычисления вертикального положения плавающей таблицы
- AbsoluteHorizontalDistance – абсолютное горизонтальное положение плавающего стола
- AbsoluteVerticalDistance – абсолютное вертикальное положение плавающего стола
- AllowOverlap – опция для включения/ отключения перекрытия с другими плавающими объектами
- RelativeHorizontalAlignment – относительное горизонтальное выравнивание плавающей таблицы.
- RelativeVerticalAlignment – относительное вертикальное выравнивание плавающей таблицы.
В следующем примере кода показано, как получить положение плавающей таблицы:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Table wrapped by text.docx"); | |
for (Table table : doc.getFirstSection().getBody().getTables()) | |
{ | |
// If the table is floating type, then print its positioning properties. | |
if (table.getTextWrapping() == TextWrapping.AROUND) | |
{ | |
System.out.println(table.getHorizontalAnchor()); | |
System.out.println(table.getVerticalAnchor()); | |
System.out.println(table.getAbsoluteHorizontalDistance()); | |
System.out.println(table.getAbsoluteVerticalDistance()); | |
System.out.println(table.getAllowOverlap()); | |
System.out.println(table.getAbsoluteHorizontalDistance()); | |
System.out.println(table.getRelativeVerticalAlignment()); | |
System.out.println(".............................."); | |
} | |
} |
Установите плавающее положение стола
Точно так же, как и getting, вы можете задать положение плавающей таблицы, используя те же самые Aspose.Words API.
Важно знать, что выравнивание и расстояние по горизонтали и вертикали являются комбинированными свойствами, и одно из них может изменять значение другого. Например, установка значения RelativeHorizontalAlignment приведет к возврату значения AbsoluteHorizontalDistance к его значению по умолчанию и наоборот. То же самое верно для вертикального расположения.
В следующем примере кода показано, как задать положение плавающей таблицы:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Table wrapped by text.docx"); | |
Table table = doc.getFirstSection().getBody().getTables().get(0); | |
table.setAbsoluteHorizontalDistance(10.0); | |
table.setRelativeVerticalAlignment(VerticalAlignment.CENTER); | |
doc.save(getArtifactsDir() + "WorkingWithTables.FloatingTablePosition.docx"); |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Table wrapped by text.docx"); | |
Table table = doc.getFirstSection().getBody().getTables().get(0); | |
table.setHorizontalAnchor(RelativeHorizontalPosition.COLUMN); | |
table.setVerticalAnchor(RelativeVerticalPosition.PAGE); | |
doc.save(getArtifactsDir() + "WorkingWithTables.RelativeHorizontalOrVerticalPosition.docx"); |
Получить расстояние между таблицей и окружающим текстом
Aspose.Words также предоставляет возможность узнать расстояния между таблицами и окружающими текстами:
- DistanceTop – значение расстояния сверху
- DistanceBottom – значение расстояния восприятия
- DistanceRight – значение расстояния справа
- DistanceLeft – значение расстояния слева
В следующем примере кода показано, как определить расстояние между таблицей и окружающим ее текстом:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java.git. | |
Document doc = new Document(getMyDir() + "Tables.docx"); | |
System.out.println("\nGet distance between table left, right, bottom, top and the surrounding text."); | |
Table table = (Table) doc.getChild(NodeType.TABLE, 0, true); | |
System.out.println(table.getDistanceTop()); | |
System.out.println(table.getDistanceBottom()); | |
System.out.println(table.getDistanceRight()); | |
System.out.println(table.getDistanceLeft()); |