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:

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:

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)