Pobieranie granic części tekstu z prezentacji w .NET

Przegląd

Część tekstu reprezentuje konkretny fragment tekstu w obrębie akapitu i pozwala pracować z tym fragmentem niezależnie od otaczającej treści. W Aspose.Slides części mogą być używane, gdy potrzebujesz pobrać granice fragmentu tekstu, zastosować formatowanie tylko do części akapitu lub kontrolować zachowanie tekstu na bardziej szczegółowym poziomie.

Artykuł opisuje, jak uzyskać prostokąt ograniczający część, używając IPortion.GetRect. Pokazuje również, jak uzyskać współrzędne początku części, używając IPortion.GetCoordinates. Dodatkowo przedstawia typowe scenariusze związane z częściami, takie jak zastosowanie hiperłącza do pojedynczego fragmentu tekstu, zrozumienie, jak formatowanie jest rozwiązywane przez część, akapit, ramkę tekstową i dziedziczenie motywu, oraz obsługę sytuacji, gdy określona czcionka jest niedostępna.

Uzyskanie granic części tekstu

Użyj IPortion.GetRect aby pobrać prostokąt ograniczający część tekstu:

using var presentation = new Presentation("Shapes.pptx");
var slide = presentation.Slides[0];
var shape = (IAutoShape)slide.Shapes[0];

foreach (var paragraph in shape.TextFrame.Paragraphs)
{
    foreach (var portion in paragraph.Portions)
    {
        var rectangle = portion.GetRect();
        Console.WriteLine($"X = {rectangle.X}; Y = {rectangle.Y}; Width = {rectangle.Width}; Height = {rectangle.Height}");
    }
}

Uzyskanie współrzędnych części tekstu

Użyj IPortion.GetCoordinates aby pobrać współrzędne początku części tekstu:

using var presentation = new Presentation("Shapes.pptx");
var slide = presentation.Slides[0];
var shape = (IAutoShape)slide.Shapes[0];

foreach (var paragraph in shape.TextFrame.Paragraphs)
{
    foreach (var portion in paragraph.Portions)
    {
        var point = portion.GetCoordinates();
        Console.WriteLine($"X = {point.X}; Y = {point.Y}");
    }
}

FAQ

Czy mogę zastosować hiperłącze tylko do części tekstu w jednym akapicie?

Tak, możesz przypisać hiperłącze do pojedynczej części; tylko ten fragment będzie klikalny, a nie cały akapit.

Jak działa dziedziczenie stylu: co część nadpisuje, a co jest pobierane z akapitu lub ramki tekstowej?

Właściwości na poziomie części mają najwyższy priorytet. Jeśli właściwość nie jest ustawiona na IPortion, Aspose.Slides pobiera ją z IParagraph. Jeśli nie jest tam również ustawiona, Aspose.Slides używa stylu z ITextFrame lub theme.

Co się stanie, jeśli czcionka określona dla części nie jest dostępna na docelowym komputerze lub serwerze?

Obowiązują zasady zamiany czcionek. Tekst może się przemieszczać: metryki, podziały wyrazów i szerokość mogą ulec zmianie, co ma znaczenie przy precyzyjnym pozycjonowaniu.

Czy mogę ustawić przezroczystość wypełnienia tekstu lub gradient specyficzny dla części, niezależnie od reszty akapitu?

Tak, kolor tekstu, wypełnienie i przezroczystość na poziomie IPortion mogą różnić się od sąsiednich fragmentów.