Posizionare una tabella

Ci sono tavoli galleggianti e tavoli in linea:

  • Inline tables sono posizionati sullo stesso livello del testo e sono collocati in un flusso di testo che circonda solo la tabella sopra e sotto. Le tabelle in linea verranno sempre visualizzate tra i paragrafi in cui sono state inserite.
  • Floating tables sono sovrapposti sul testo e la posizione della tabella rispetto al paragrafo è determinata dall’ancoraggio della tabella. Per questo motivo, la posizione della tabella mobile nel documento è influenzata dalle impostazioni di posizionamento verticale e orizzontale.

A volte è necessario posizionare una tabella in un documento in un certo modo. Per fare ciò, è necessario utilizzare gli strumenti di allineamento e impostare i rientri tra la tabella e il testo circostante.

In questo articolo, discuteremo quali opzioni Aspose.Words fornisce per il posizionamento.

Specificare la posizione della tabella in linea

È possibile impostare la posizione di una tabella in linea utilizzando le proprietà Aspose.Words API e Alignment. Pertanto, è possibile regolare l’allineamento della tabella rispetto alla pagina del documento.

L’esempio di codice seguente mostra come impostare la posizione di una tabella in linea:

// 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);

Ottieni l’allineamento della tabella mobile

Se il testo della tabella è impostato su Around, è possibile ottenere l’allineamento orizzontale e verticale della tabella utilizzando le proprietà RelativeHorizontalAlignment e RelativeVerticalAlignment.

Con other types of text wrapping, è possibile ottenere l’allineamento della tabella in linea utilizzando la proprietà Alignment.

Il seguente esempio di codice mostra come ottenere l’allineamento della tabella:

// 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());
}

Ottieni la posizione della tabella mobile

La posizione di una tabella mobile viene determinata utilizzando le seguenti proprietà:

Il seguente esempio di codice mostra come ottenere la posizione di una tabella mobile:

// 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("..............................");
}
}

Imposta la posizione della tavola mobile

Proprio come ottenere, puoi impostare la posizione di una tabella mobile usando lo stesso Aspose.Words API.

È importante sapere che l’allineamento e la distanza orizzontale e verticale sono proprietà combinate e una può reimpostare l’altra. Ad esempio, l’impostazione di RelativeHorizontalAlignment ripristinerà il valore predefinito di AbsoluteHorizontalDistance e viceversa. Lo stesso vale per la disposizione verticale.

Il seguente esempio di codice mostra come impostare la posizione di una tabella mobile:

// 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");

Ottieni la distanza tra la tabella e il testo circostante

Aspose.Words offre anche l’opportunità di scoprire le distanze tra le tabelle e i testi circostanti:

L’esempio di codice seguente mostra come ottenere la distanza tra una tabella e il testo circostante:

// 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());