Απόκτηση ορίων τμημάτων κειμένου από παρουσιάσεις σε .NET

Επισκόπηση

Μία περιοχή κειμένου αντιπροσωπεύει ένα συγκεκριμένο απόσπασμα κειμένου μέσα σε μια παράγραφο και σας επιτρέπει να εργαστείτε με αυτό το απόσπασμα ανεξάρτητα από το περιεχόμενο γύρω του. Στην Aspose.Slides, οι περιοχές μπορούν να χρησιμοποιηθούν όταν χρειάζεται να ανακτήσετε τα όρια ενός αποσπάσματος κειμένου, να εφαρμόσετε μορφοποίηση μόνο σε μέρος μιας παραγράφου ή να ελέγξετε τη συμπεριφορά του κειμένου σε πιο λεπτομερές επίπεδο.

Αυτό το άρθρο δείχνει πώς να λάβετε το οριοθετημένο ορθογώνιο μιας περιοχής χρησιμοποιώντας IPortion.GetRect. Επίσης δείχνει πώς να λάβετε τις συντεταγμένες της αρχής μιας περιοχής χρησιμοποιώντας IPortion.GetCoordinates. Επιπλέον, επισημαίνει κοινά σενάρια που σχετίζονται με τις περιοχές, όπως η προσθήκη υπερσυνδέσμου σε ένα μόνο απόσπασμα κειμένου, η κατανόηση του πώς η μορφοποίηση επιλύεται μέσω της περιοχής, της παραγράφου, του πλαισίου κειμένου και της κληρονομικότητας θέματος, καθώς και η αντιμετώπιση περιπτώσεων όπου η καθορισμένη γραμματοσειρά δεν είναι διαθέσιμη.

Λήψη ορίων μιας περιοχής κειμένου

Χρησιμοποιήστε το IPortion.GetRect για να ανακτήσετε το οριοθετημένο ορθογώνιο μιας περιοχής κειμένου:

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

Λήψη συντεταγμένων μιας περιοχής κειμένου

Χρησιμοποιήστε το IPortion.GetCoordinates για να ανακτήσετε τις συντεταγμένες της αρχής μιας περιοχής κειμένου:

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

Συχνές ερωτήσεις

Μπορώ να εφαρμόσω υπερσύνδεσμο μόνο σε μέρος του κειμένου σε μία μόνο παράγραφο;

Ναι, μπορείτε να ορίσετε έναν υπερσύνδεσμο σε μια μεμονωμένη περιοχή· μόνο αυτό το απόσπασμα θα είναι κλικαρίσιμο, όχι ολόκληρη η παράγραφος.

Πώς λειτουργεί η κληρονομικότητα στυλ: τι υπερισχύει από μια περιοχή και τι λαμβάνεται από μια παράγραφο ή ένα πλαίσιο κειμένου;

Οι ιδιότητες σε επίπεδο περιοχής έχουν την υψηλότερη προτεραιότητα. Εάν μια ιδιότητα δεν έχει οριστεί στην IPortion, η Aspose.Slides την λαμβάνει από την IParagraph. Εάν δεν έχει οριστεί εκεί επίσης, η Aspose.Slides χρησιμοποιεί το στυλ του ITextFrame ή του theme.

Τι συμβαίνει αν η γραμματοσειρά που έχει οριστεί για μια περιοχή λείπει από το μηχάνημα ή τον διακομιστή στόχο;

Οι κανόνες αντικατάστασης γραμματοσειρών εφαρμόζονται. Το κείμενο μπορεί να επαναδιαταχθεί: οι μετρικές, η συλλαβοτομία και το πλάτος μπορεί να αλλάξουν, γεγονός που είναι σημαντικό για ακριβή τοποθέτηση.

Μπορώ να ορίσω διαφάνεια γεμίσματος κειμένου ή διαβάθμιση ειδικά για μια περιοχή, ανεξάρτητα από το υπόλοιπο της παραγράφου;

Ναι, το χρώμα κειμένου, το γέμισμα και η διαφάνεια σε επίπεδο IPortion μπορούν να διαφέρουν από τα γειτονικά αποσπάσματα.