Einen Tisch positionieren
Es gibt schwebende Tabellen und Inline-Tabellen:
- Inline tables werden auf derselben Ebene wie der Text platziert und in einen Textfluss eingefügt, der nur die Tabelle oben und unten umgibt. Inline-Tabellen werden immer zwischen den Absätzen angezeigt, in denen Sie sie platziert haben.
- Floating tables werden über den Text geschichtet, und die Position der Tabelle relativ zum Absatz wird durch den Tabellenanker bestimmt. Aus diesem Grund wird die Position der schwebenden Tabelle im Dokument von den vertikalen und horizontalen Positionierungseinstellungen beeinflusst.
Manchmal müssen Sie eine Tabelle in einem Dokument auf eine bestimmte Weise positionieren. Dazu müssen Sie die Ausrichtungswerkzeuge verwenden und die Einzüge zwischen der Tabelle und dem umgebenden Text festlegen.
In diesem Artikel werden wir diskutieren, welche Optionen Aspose.Words für die Positionierung bietet.
Inline-Tabellenposition angeben
Sie können die Position einer Inline-Tabelle mit den Eigenschaften Aspose.Words API und Alignment festlegen. So können Sie die Ausrichtung der Tabelle relativ zur Dokumentseite anpassen.
Das folgende Codebeispiel zeigt, wie die Position einer Inline-Tabelle festgelegt wird:
// 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); |
Holen Sie sich die Ausrichtung des schwebenden Tisches
Wenn der Tabellentextumbruch auf Around festgelegt ist, können Sie die horizontale und vertikale Ausrichtung der Tabelle mithilfe der Eigenschaften RelativeHorizontalAlignment und RelativeVerticalAlignment ermitteln.
Mit other types of text wrapping können Sie die Inline-Tabellenausrichtung mithilfe der Eigenschaft Alignment erhalten.
Das folgende Codebeispiel zeigt, wie die Ausrichtung der Tabelle ermittelt wird:
// 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; | |
} |
Position des schwebenden Tisches ermitteln
Die Position einer schwebenden Tabelle wird anhand der folgenden Eigenschaften bestimmt:
- HorizontalAnchor - ein Objekt zur Berechnung der horizontalen Positionierung einer schwebenden Tabelle
- VerticalAnchor - ein Objekt zur Berechnung der vertikalen Positionierung einer schwebenden Tabelle
- AbsoluteHorizontalDistance - absolute horizontale Position des schwebenden Tisches
- AbsoluteVerticalDistance - absolute vertikale Position des schwebenden Tisches
- AllowOverlap - Option zum Aktivieren / Deaktivieren der Überlappung mit anderen schwebenden Objekten
- RelativeHorizontalAlignment - relative horizontale Ausrichtung der schwebenden Tabelle.
- RelativeVerticalAlignment - relative vertikale Ausrichtung der schwebenden Tabelle.
Das folgende Codebeispiel zeigt, wie Sie die Position einer schwebenden Tabelle ermitteln:
// 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; | |
} | |
} |
Position des schwebenden Tisches festlegen
Genau wie beim Abrufen können Sie die Position einer schwebenden Tabelle mit demselben Aspose.Words API festlegen.
Es ist wichtig zu wissen, dass Ausrichtung und horizontaler und vertikaler Abstand kombinierte Eigenschaften sind und eine die andere zurücksetzen kann. Wenn Sie beispielsweise RelativeHorizontalAlignment setzen, wird AbsoluteHorizontalDistance auf den Standardwert zurückgesetzt und umgekehrt. Gleiches gilt für die vertikale Anordnung.
Das folgende Codebeispiel zeigt, wie die Position einer schwebenden Tabelle festgelegt wird:
// 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"); |
Ermitteln Sie den Abstand zwischen Tabelle und umgebendem Text
Aspose.Words bietet auch die Möglichkeit, die Abstände zwischen Tabellen und umgebenden Texten zu ermitteln:
- DistanceTop – der Wert der Entfernung von oben
- DistanceBottom – der Wert der Wahrnehmungsentfernung
- DistanceRight - Entfernungswert auf der rechten Seite
- DistanceLeft - Entfernungswert auf der linken Seite
Das folgende Codebeispiel zeigt, wie Sie den Abstand zwischen einer Tabelle und dem umgebenden Text ermitteln:
// 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; |