Ustaw tabelę
Istnieją tabele pływające i tabele wbudowane:
- Inline tables są umieszczane na tej samej warstwie co tekst i są umieszczane w strumieniu tekstu, który otacza tylko tabelę powyżej i poniżej. Tabele wbudowane zawsze będą wyświetlane między akapitami, w których je umieściłeś.
- Floating tables są nakładane na tekst, a pozycja tabeli względem akapitu jest określana przez kotwicę tabeli. Z tego powodu na pozycję tabeli pływającej w dokumencie wpływają ustawienia pozycjonowania pionowego i poziomego.
Czasami musisz ustawić tabelę w dokumencie w określony sposób. Aby to zrobić, musisz użyć narzędzi wyrównywania i ustawić wcięcia między tabelą a otaczającym tekstem.
W tym artykule omówimy, jakie opcje Aspose.Words zapewnia pozycjonowanie.
Określ Pozycję Tabeli W Linii
Możesz ustawić pozycję tabeli wbudowanej za pomocą właściwości Aspose.Words API i Alignment. W ten sposób możesz dostosować wyrównanie tabeli względem strony dokumentu.
Poniższy przykład kodu pokazuje, jak ustawić pozycję tabeli wbudowanej:
// 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); |
Uzyskaj Wyrównanie Stołu Pływającego
Jeśli zawijanie tekstu tabeli jest ustawione na Around, można uzyskać wyrównanie tabeli w poziomie i pionie za pomocą właściwości RelativeHorizontalAlignment i RelativeVerticalAlignment.
Za pomocą other types of text wrapping możesz uzyskać wyrównanie tabeli w linii za pomocą właściwości Alignment.
Poniższy przykład kodu pokazuje, jak uzyskać wyrównanie tabeli:
// 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; | |
} |
Uzyskaj Pływającą Pozycję Stołu
Położenie tabeli pływającej określa się za pomocą następujących właściwości:
- HorizontalAnchor - obiekt do obliczania położenia poziomego tabeli pływającej
- VerticalAnchor - obiekt do obliczania pionowego położenia tabeli pływającej
- AbsoluteHorizontalDistance - bezwzględna pozioma pozycja stołu pływającego
- AbsoluteVerticalDistance - absolutna pionowa pozycja stołu pływającego
- AllowOverlap - opcja włączania / wyłączania nakładania się na inne obiekty pływające
- RelativeHorizontalAlignment - względne wyrównanie poziome tabeli pływającej.
- RelativeVerticalAlignment - względne wyrównanie pionowe stołu pływającego.
Poniższy przykład kodu pokazuje, jak uzyskać pozycję tabeli pływającej:
// 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; | |
} | |
} |
Ustaw Pozycję Pływającego Stołu
Podobnie jak getting, możesz ustawić pozycję pływającego stołu, używając tego samego Aspose.Words API.
Ważne jest, aby wiedzieć, że wyrównanie oraz odległość pozioma i pionowa są połączonymi właściwościami i można zresetować drugie. Na przykład ustawienie RelativeHorizontalAlignment spowoduje zresetowanie AbsoluteHorizontalDistance do wartości domyślnej i odwrotnie. To samo dotyczy układu pionowego.
Poniższy przykład kodu pokazuje, jak ustawić pozycję tabeli pływającej:
// 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"); |
Uzyskaj odległość między tabelą a otaczającym tekstem
Aspose.Words daje również możliwość poznania odległości między tabelami a otaczającymi tekstami:
- DistanceTop - wartość odległości od góry
- DistanceBottom - wartość odległości percepcji
- DistanceRight - wartość odległości po prawej stronie
- DistanceLeft - wartość odległości po lewej stronie
Poniższy przykład kodu pokazuje, jak uzyskać odległość między tabelą a otaczającym ją tekstem:
// 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; |