Posiziona un tavolo

Esistono tabelle mobili e tabelle in linea:

  • I Tabelle in linea sono posizionati sullo stesso livello del testo e sono inseriti in un flusso di testo che circonda solo la tabella sopra e sotto. Le tabelle in linea appariranno sempre tra i paragrafi in cui le hai inserite.
  • I Tavoli galleggianti sono sovrapposti al testo e la posizione della tabella rispetto al paragrafo è determinata dall’ancora della tabella. Per questo motivo, la posizione della tabella mobile nel documento viene 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 offre Aspose.Words per il posizionamento.

Specificare la posizione della tabella in linea

È possibile impostare la posizione di una tabella in linea utilizzando la proprietà Aspose.Words API e Alignment. Pertanto, puoi 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-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
// Align the table to the center of the page.
table.Alignment = TableAlignment.Center;

Ottieni l’allineamento della tabella mobile

Se la disposizione del testo della tabella è impostata su Around, puoi ottenere l’allineamento orizzontale e verticale della tabella utilizzando le proprietà RelativeHorizontalAlignment e RelativeVerticalAlignment.

Con altri tipi di disposizione del testo, puoi ottenere l’allineamento della tabella in linea utilizzando la proprietà Alignment.

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

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
if (table.TextWrapping == TextWrapping.Around)
{
Console.WriteLine(table.RelativeHorizontalAlignment);
Console.WriteLine(table.RelativeVerticalAlignment);
}
else
{
Console.WriteLine(table.Alignment);
}

Ottieni la posizione della tabella mobile

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

L’esempio di codice seguente 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-.NET.git.
Document doc = new Document(MyDir + "Table wrapped by text.docx");
foreach (Table table in doc.FirstSection.Body.Tables)
{
// If the table is floating type, then print its positioning properties.
if (table.TextWrapping == TextWrapping.Around)
{
Console.WriteLine(table.HorizontalAnchor);
Console.WriteLine(table.VerticalAnchor);
Console.WriteLine(table.AbsoluteHorizontalDistance);
Console.WriteLine(table.AbsoluteVerticalDistance);
Console.WriteLine(table.AllowOverlap);
Console.WriteLine(table.AbsoluteHorizontalDistance);
Console.WriteLine(table.RelativeVerticalAlignment);
Console.WriteLine("..............................");
}
}

Imposta la posizione della tabella mobile

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

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

L’esempio di codice seguente 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-.NET.git.
Document doc = new Document(MyDir + "Table wrapped by text.docx");
Table table = doc.FirstSection.Body.Tables[0];
table.AbsoluteHorizontalDistance = 10;
table.RelativeVerticalAlignment = VerticalAlignment.Center;
doc.Save(ArtifactsDir + "WorkingWithTables.FloatingTablePosition.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-.NET.git.
Document doc = new Document(MyDir + "Tables.docx");
Console.WriteLine("\nGet distance between table left, right, bottom, top and the surrounding text.");
Table table = (Table) doc.GetChild(NodeType.Table, 0, true);
Console.WriteLine(table.DistanceTop);
Console.WriteLine(table.DistanceBottom);
Console.WriteLine(table.DistanceRight);
Console.WriteLine(table.DistanceLeft);