Umístění tabulky

Existují plovoucí stoly a inline tabulky:

  • Inline tabulky jsou umístěny na stejné vrstvě jako text a jsou umístěny do toku textu, který obklopuje pouze tabulku nahoře a pod ní. Mezi odstavci, kam jste je umístili, se vždy objeví inline tabulky.
  • Plovoucí stoly jsou nad textem vrstveny a poloha tabulky vzhledem k odstavci je určena ukotvením tabulky. Kvůli tomu je poloha plovoucí tabulky v dokumentu ovlivněna vertikálním a horizontálním nastavením polohy.

Někdy je třeba umístit tabulku do dokumentu určitým způsobem. K tomu je třeba použít zarovnání nástrojů a nastavit odrážky mezi tabulkou a okolním textem.

V tomto článku budeme diskutovat o tom, jaké možnosti Aspose.Words zajišťuje umístění.

Upřesnit pozici v inline tabulce

Můžete nastavit pozici inline tabulky pomocí Aspose.Words API a Alignment majetek. Můžete tedy upravit nastavení tabulky vzhledem k záložce dokumentu.

Následující příklad kódu ukazuje, jak nastavit pozici inline tabulky:

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

Zarovnat plovoucí stůl

Pokud je text tabulky zabalen na Around, můžete získat horizontální a vertikální nastavení tabulky pomocí RelativeHorizontalAlignment a RelativeVerticalAlignment vlastnosti.

S jiné typy balení textu, můžete získat inline nastavení tabulky pomocí Alignment majetek.

Následující příklad kódu ukazuje, jak získat zarovnání tabulky:

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

Získat polohu plovoucího stolu

Poloha plovoucí tabulky se určuje pomocí těchto vlastností:

Následující příklad kódu ukazuje, jak získat pozici plovoucí tabulky:

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

Nastavit polohu plovoucího stolu

Stejně jako dostat, můžete nastavit polohu plovoucího stolu pomocí stejné Aspose.Words API.

Je důležité vědět, že seřízení a horizontální a vertikální vzdálenost jsou kombinované vlastnosti a jedna může resetovat druhou. Například nastavení RelativeHorizontalAlignment resetuje AbsoluteHorizontalDistance na výchozí hodnotu a naopak. To samé je true pro vertikální uspořádání.

Následující příklad kódu ukazuje, jak nastavit polohu plovoucí tabulky:

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

Získat vzdálenost mezi stolem a okolním textem

Aspose.Words také poskytuje možnost zjistit vzdálenosti mezi stoly a okolními texty:

Následující příklad kódu ukazuje, jak získat vzdálenost mezi tabulkou a jejím okolním textem:

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