Umístěte tabulku
K dispozici jsou plovoucí stoly a inline tabulky:
- Inline tables jsou umístěny na stejné vrstvě jako text a jsou umístěny v toku textu, který obklopuje pouze tabulku nad a pod. Mezi odstavci, kam jste je umístili, se vždy zobrazí vložené tabulky.
- Floating tables jsou vrstveny přes text a poloha tabulky vzhledem k odstavci je určena kotvou tabulky. Z tohoto důvodu je poloha plovoucí tabulky v dokumentu ovlivněna nastavením vertikální a horizontální polohy.
Někdy je třeba umístit tabulku do dokumentu určitým způsobem. Chcete-li to provést, musíte použít nástroje pro zarovnání a nastavit odsazení mezi tabulkou a okolním textem.
V tomto článku probereme, jaké možnosti Aspose.Words poskytuje pro umístění.
Určete Pozici Vložené Tabulky
Pozici vložené tabulky můžete nastavit pomocí vlastnosti Aspose.Words API a Alignment. Můžete tedy upravit zarovnání tabulky vzhledem ke stránce dokumentu.
Následující příklad kódu ukazuje, jak nastavit pozici vložené tabulky:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Tables.docx"); | |
auto table = System::ExplicitCast<Table>(doc->GetChild(NodeType::Table, 0, true)); | |
// Align the table to the center of the page. | |
table->set_Alignment(TableAlignment::Center); |
Získejte Zarovnání Plovoucí Tabulky
Pokud je obtékání textu tabulky nastaveno na Around, můžete získat vodorovné a svislé zarovnání tabulky pomocí vlastností RelativeHorizontalAlignment a RelativeVerticalAlignment.
Pomocí other types of text wrapping můžete získat zarovnání inline tabulky pomocí vlastnosti Alignment.
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-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Tables.docx"); | |
auto table = System::ExplicitCast<Table>(doc->GetChild(NodeType::Table, 0, true)); | |
if (table->get_TextWrapping() == TextWrapping::Around) | |
{ | |
std::cout << System::EnumGetName(table->get_RelativeHorizontalAlignment()) << std::endl; | |
std::cout << System::EnumGetName(table->get_RelativeVerticalAlignment()) << std::endl; | |
} | |
else | |
{ | |
std::cout << System::EnumGetName(table->get_Alignment()) << std::endl; | |
} |
Získejte Plovoucí Pozici Stolu
Poloha plovoucí tabulky se určuje pomocí následujících vlastností:
- HorizontalAnchor - objekt pro výpočet horizontálního umístění plovoucí tabulky
- VerticalAnchor - objekt pro výpočet svislého umístění plovoucí tabulky
- AbsoluteHorizontalDistance - absolutní vodorovná poloha plovoucí tabulky
- AbsoluteVerticalDistance - absolutní vertikální poloha plovoucí tabulky
- AllowOverlap - možnost povolit / zakázat překrývání s jinými plovoucími objekty
- RelativeHorizontalAlignment - relativní horizontální zarovnání plovoucí tabulky.
- RelativeVerticalAlignment - relativní vertikální zarovnání plovoucí tabulky.
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-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Table wrapped by text.docx"); | |
for (const auto& table : System::IterateOver<Table>(doc->get_FirstSection()->get_Body()->get_Tables())) | |
{ | |
// If the table is floating type, then print its positioning properties. | |
if (table->get_TextWrapping() == TextWrapping::Around) | |
{ | |
std::cout << System::EnumGetName(table->get_HorizontalAnchor()) << std::endl; | |
std::cout << System::EnumGetName(table->get_VerticalAnchor()) << std::endl; | |
std::cout << table->get_AbsoluteHorizontalDistance() << std::endl; | |
std::cout << table->get_AbsoluteVerticalDistance() << std::endl; | |
std::cout << System::Convert::ToString(table->get_AllowOverlap()) << std::endl; | |
std::cout << table->get_AbsoluteHorizontalDistance() << std::endl; | |
std::cout << System::EnumGetName(table->get_RelativeVerticalAlignment()) << std::endl; | |
std::cout << ".............................." << std::endl; | |
} | |
} |
Nastavte Polohu Plovoucího Stolu
Stejně jako získání můžete nastavit polohu plovoucí tabulky pomocí stejného Aspose.Words API.
Je důležité vědět, že zarovnání a horizontální a vertikální vzdálenost jsou kombinované vlastnosti a jeden může resetovat druhý. Například nastavení RelativeHorizontalAlignment resetuje AbsoluteHorizontalDistance na výchozí hodnotu a naopak. Totéž platí 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-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Table wrapped by text.docx"); | |
SharedPtr<Table> table = doc->get_FirstSection()->get_Body()->get_Tables()->idx_get(0); | |
table->set_AbsoluteHorizontalDistance(10); | |
table->set_RelativeVerticalAlignment(VerticalAlignment::Center); | |
doc->Save(ArtifactsDir + u"WorkingWithTables.FloatingTablePosition.docx"); |
Získejte vzdálenost mezi tabulkou a okolním textem
Aspose.Words také poskytuje příležitost zjistit vzdálenosti mezi tabulkami a okolními texty:
- DistanceTop - hodnota vzdálenosti shora
- DistanceBottom - hodnota vzdálenosti vnímání
- DistanceRight - hodnota vzdálenosti vpravo
- DistanceLeft - hodnota vzdálenosti vlevo
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-C.git. | |
auto doc = MakeObject<Document>(MyDir + u"Tables.docx"); | |
std::cout << "\nGet distance between table left, right, bottom, top and the surrounding text." << std::endl; | |
auto table = System::ExplicitCast<Table>(doc->GetChild(NodeType::Table, 0, true)); | |
std::cout << table->get_DistanceTop() << std::endl; | |
std::cout << table->get_DistanceBottom() << std::endl; | |
std::cout << table->get_DistanceRight() << std::endl; | |
std::cout << table->get_DistanceLeft() << std::endl; |