C++ Sunumlarından Metin Bölümü Sınırlarını Alın

Genel Bakış

Bir metin bölümü, bir paragraftaki belirli bir metin kesitini temsil eder ve bu kesitle çevredeki içerikten bağımsız olarak çalışmanıza olanak tanır. Aspose.Slides içinde, bölümler bir metin kesitinin sınırlarını almak, yalnızca bir paragrafın bir kısmına biçimlendirme uygulamak veya metin davranışını daha ayrıntılı bir seviyede kontrol etmek istediğinizde kullanılabilir.

Bu makale, bir bölümün sınırlayıcı dikdörtgenini elde etmek için IPortion::GetRect kullanımını gösterir. Ayrıca bir bölümün başlangıç koordinatlarını elde etmek için IPortion::GetCoordinates kullanımını gösterir. Ek olarak, tek bir metin kesitine bir köprü ekleme, biçimlendirmenin bölüm, paragraf, metin çerçevesi ve tema kalıtımı aracılığıyla nasıl çözümlendiğini anlama ve belirtilen bir yazı tipinin bulunmadığı durumları yönetme gibi yaygın bölümle ilgili senaryoları vurgular.

Bir Metin Bölümünün Sınır Dikdörtgeni

IPortion::GetRect kullanarak bir metin bölümünün sınırlayıcı dikdörtgenini alın:

auto presentation = System::MakeObject<Presentation>(u"Shapes.pptx");
auto slide = presentation->get_Slide(0);
auto shape = System::ExplicitCast<IAutoShape>(slide->get_Shape(0));
auto paragraphs = shape->get_TextFrame()->get_Paragraphs();

for (const auto& paragraph : paragraphs)
{
    auto portions = paragraph->get_Portions();
    for (const auto& portion : portions)
    {
        auto rectangle = portion->GetRect();
        auto rectangleX = rectangle.get_X();
        auto rectangleY = rectangle.get_Y();
        auto rectangleWidth = rectangle.get_Width();
        auto rectangleHeight = rectangle.get_Height();

        Console::WriteLine(u"X = {0}; Y = {1}; Width = {2}; Height = {3}", rectangleX, rectangleY, rectangleWidth, rectangleHeight);
    }
}

presentation->Dispose();

Bir Metin Bölümünün Koordinatlarını Alın

IPortion::GetCoordinates kullanarak bir metin bölümünün başlangıç koordinatlarını alın:

auto presentation = System::MakeObject<Presentation>(u"Shapes.pptx");
auto slide = presentation->get_Slide(0);
auto shape = System::ExplicitCast<IAutoShape>(slide->get_Shape(0));
auto paragraphs = shape->get_TextFrame()->get_Paragraphs();

for (const auto& paragraph : paragraphs)
{
    auto portions = paragraph->get_Portions();
    for (const auto& portion : portions)
    {
        auto point = portion->GetCoordinates();
        auto pointX = point.get_X();
        auto pointY = point.get_Y();

        Console::WriteLine(u"X = {0}; Y = {1}", pointX, pointY);
    }
}

presentation->Dispose();

SSS

Tek bir paragraftaki metnin yalnızca bir kısmına bir köprü uygulayabilir miyim?

Evet, bireysel bir bölüme bir köprü atayın yapabilirsiniz; yalnızca o kesit tıklanabilir olacaktır, tüm paragraf değil.

Stil kalıtımı nasıl çalışır: bir bölüm neyi geçersiz kılar ve neyi paragraftan ya da metin çerçevesinden alır?

Bölüm seviyesindeki özellikler en yüksek önceliğe sahiptir. Bir özellik IPortion üzerinde ayarlanmamışsa, Aspose.Slides bunu IParagraph üzerinden alır. Orada da ayarlanmamışsa, Aspose.Slides ITextFrame veya theme stilini kullanır.

Bir bölüm için belirtilen yazı tipi hedef makine veya sunucuda mevcut değilse ne olur?

Yazı tipi ikame kuralları uygulanır. Metin yeniden akışa girebilir: ölçümler, heceleme ve genişlik değişebilir, bu da kesin konumlandırma için önemlidir.

Bir paragrafın geri kalanından bağımsız olarak, bölüm bazlı metin dolgusu saydamlığını veya bir degradeyi ayarlayabilir miyim?

Evet, IPortion seviyesindeki metin rengi, dolgu ve saydamlık komşu kesitlerden farklı olabilir.