Posicione uma mesa
Existem tabelas flutuantes e tabelas embutidas:
- Tabelas embutidas são colocados na mesma camada do texto e são colocados em um fluxo de texto que circunda apenas a tabela acima e abaixo. As tabelas embutidas sempre aparecerão entre os parágrafos onde você as colocou.
- Mesas flutuantes são colocados em camadas sobre o texto e a posição da tabela em relação ao parágrafo é determinada pela âncora da tabela. Por causa disso, a posição da tabela flutuante no documento é afetada pelas configurações de posicionamento vertical e horizontal.
Às vezes você precisa posicionar uma tabela em um documento de uma determinada maneira. Para fazer isso, você precisa usar as ferramentas de alinhamento e definir os recuos entre a tabela e o texto ao redor.
Neste artigo, discutiremos quais opções o Aspose.Words oferece para posicionamento.
Especifique a posição da tabela embutida
Você pode definir a posição de uma tabela embutida usando o Aspose.Words API e a propriedade Alignment. Assim, você pode ajustar o alinhamento da tabela em relação à página do documento.
O exemplo de código a seguir mostra como definir a posição de uma tabela embutida:
# 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 |
Obtenha alinhamento de mesa flutuante
Se a quebra automática do texto da tabela estiver definida como Around, você poderá obter o alinhamento horizontal e vertical da tabela usando as propriedades RelativeHorizontalAlignment e RelativeVerticalAlignment.
Com outros tipos de quebra automática de texto, você pode obter alinhamento de tabela embutido usando a propriedade Alignment.
O exemplo de código a seguir mostra como obter o alinhamento da tabela:
# 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) |
Obtenha a posição da mesa flutuante
A posição de uma tabela flutuante é determinada usando as seguintes propriedades:
- HorizontalAnchor – um objeto para calcular o posicionamento horizontal de uma mesa flutuante
- VerticalAnchor – um objeto para calcular o posicionamento vertical de uma mesa flutuante
- AbsoluteHorizontalDistance – posição absoluta da mesa flutuante horizontal
- AbsoluteVerticalDistance – posição vertical absoluta da mesa flutuante
- AllowOverlap – opção para ativar/desativar a sobreposição com outros objetos flutuantes
- RelativeHorizontalAlignment – alinhamento horizontal relativo da tabela flutuante.
- RelativeVerticalAlignment – alinhamento vertical relativo da tabela flutuante.
O exemplo de código a seguir mostra como obter a posição de uma tabela flutuante:
# 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("..............................") |
Definir posição da mesa flutuante
Assim como fazer, você pode definir a posição de uma tabela flutuante usando o mesmo Aspose.Words API.
É importante saber que alinhamento e distância horizontal e vertical são propriedades combinadas e uma pode zerar a outra. Por exemplo, definir RelativeHorizontalAlignment redefinirá o AbsoluteHorizontalDistance para seu valor padrão e vice-versa. O mesmo é true para o arranjo vertical.
O exemplo de código a seguir mostra como definir a posição de uma tabela flutuante:
# 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") |
Obtenha distância entre a tabela e o texto circundante
Aspose.Words também oferece a oportunidade de descobrir as distâncias entre tabelas e textos circundantes:
- DistanceTop – o valor da distância de cima
- DistanceBottom – o valor da distância de percepção
- DistanceRight – valor da distância à direita
- DistanceLeft – valor da distância à esquerda
O exemplo de código a seguir mostra como obter a distância entre uma tabela e o texto ao seu redor:
# 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) |