Bir Tabloyu Konumlandır

Kayan tablolar ve satır içi tablolar vardır:

  • Inline tables, metinle aynı katmana yerleştirilir ve yalnızca yukarıdaki ve altındaki tabloyu çevreleyen bir metin akışına yerleştirilir. Satır içi tablolar her zaman yerleştirdiğiniz paragraflar arasında görünür.
  • Floating tables metnin üzerine katmanlanır ve tablonun paragrafa göre konumu tablo bağlantısı tarafından belirlenir. Bu nedenle, belgedeki kayan tablonun konumu dikey ve yatay konumlandırma ayarlarından etkilenir.

Bazen bir tabloyu bir belgede belirli bir şekilde konumlandırmanız gerekir. Bunu yapmak için hizalama araçlarını kullanmanız ve tablo ile çevresindeki metin arasındaki girintileri ayarlamanız gerekir.

Bu makalede, Aspose.Words ‘ın konumlandırma için hangi seçenekleri sağladığını tartışacağız.

Satır İçi Tablo Konumunu Belirtin

Satır içi tablonun konumunu Aspose.Words API ve Alignment özelliğini kullanarak ayarlayabilirsiniz. Böylece, tablonun belge sayfasına göre hizalamasını ayarlayabilirsiniz.

Aşağıdaki kod örneği, satır içi bir tablonun konumunun nasıl ayarlanacağını gösterir:

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

Kayan Tablo Hizalamasını Alın

Tablo metni kaydırma Around olarak ayarlanmışsa, tablonun yatay ve dikey hizalamasını RelativeHorizontalAlignment ve RelativeVerticalAlignment özelliklerini kullanarak alabilirsiniz.

other types of text wrapping ile Alignment özelliğini kullanarak satır içi tablo hizalaması elde edebilirsiniz.

Aşağıdaki kod örneği, tablonun hizalamasını nasıl alacağınızı gösterir:

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

Kayan Tablo Konumunu Al

Kayan bir tablonun konumu aşağıdaki özellikler kullanılarak belirlenir:

Aşağıdaki kod örneği, kayan bir tablonun konumunu nasıl alacağınızı gösterir:

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

Kayan Tablo Konumunu Ayarla

Tıpkı almak gibi, kayan bir tablonun konumunu da aynı Aspose.Words API kullanarak ayarlayabilirsiniz.

Hizalamanın, yatay ve dikey mesafenin birleşik özellikler olduğunu ve birinin diğerini sıfırlayabileceğini bilmek önemlidir. Örneğin, RelativeHorizontalAlignment değerini ayarlamak AbsoluteHorizontalDistance değerini varsayılan değerine sıfırlar ve bunun tersi de geçerlidir. Aynısı dikey düzenleme için de geçerlidir.

Aşağıdaki kod örneği, kayan bir tablonun konumunun nasıl ayarlanacağını gösterir:

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

Tablo ve Çevresindeki Metin arasındaki Mesafeyi Alın

Aspose.Words ayrıca tablolar ve çevresindeki metinler arasındaki mesafeleri bulma fırsatı da sağlar:

Aşağıdaki kod örneği, bir tablo ile çevresindeki metin arasındaki mesafenin nasıl alınacağını gösterir:

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