Προχωρημένη Εξαγωγή Κειμένου από Παρουσιάσεις σε C++
Επισκόπηση
Η εξαγωγή κειμένου από παρουσιάσεις είναι μια συνηθισμένη αλλά απαραίτητη εργασία για προγραμματιστές που εργάζονται με το περιεχόμενο των διαφανειών. Είτε χειρίζεστε αρχεία Microsoft PowerPoint σε μορφή PPT ή PPTX, είτε παρουσιάσεις OpenDocument (ODP), η πρόσβαση και η ανάκτηση κειμενικών δεδομένων μπορεί να είναι κρίσιμη για ανάλυση, αυτοματοποίηση, ευρετηρίαση ή μεταφορά περιεχομένου.
Αυτό το άρθρο παρέχει έναν ολοκληρωμένο οδηγό για το πώς να εξάγετε αποτελεσματικά κείμενο από διάφορες μορφές παρουσιάσεων, συμπεριλαμβανομένων των PPT, PPTX και ODP, χρησιμοποιώντας το Aspose.Slides for C++. Θα μάθετε πώς να διασχίζετε συστηματικά τα στοιχεία μιας παρουσίασης ώστε να ανακτήσετε ακριβώς το κείμενο που χρειάζεστε.
Εξαγωγή Κειμένου από μια Διαφάνεια
Το Aspose.Slides for C++ παρέχει το χώρο ονομάτων Aspose.Slides.Util , ο οποίος περιλαμβάνει την κλάση SlideUtil. Αυτή η κλάση εκθέτει αρκετές υπερφορτωμένες στατικές μεθόδους για την εξαγωγή όλου του κειμένου από μια παρουσίαση ή διαφάνεια. Για να εξάγετε κείμενο από μια διαφάνεια σε μια παρουσίαση, χρησιμοποιήστε τη μέθοδο GetAllTextBoxes. Αυτή η μέθοδος δέχεται ένα αντικείμενο τύπου IBaseSlide ως παράμετρο. Κατά την εκτέλεση, η μέθοδος σαρώει ολόκληρη τη διαφάνεια για κείμενο και επιστρέφει έναν πίνακα αντικειμένων τύπου ITextFrame, διατηρώντας τυχόν μορφοποίηση του κειμένου.
auto slideIndex = 0;
auto presentation = System::MakeObject<Presentation>(u"demo.pptx");
auto slide = presentation->get_Slide(slideIndex);
auto textFrames = Util::SlideUtil::GetAllTextBoxes(slide);
for (const auto& textFrame : textFrames)
{
for (const auto& paragraph : textFrame->get_Paragraphs())
{
for (const auto& portion : paragraph->get_Portions())
{
auto portionText = portion->get_Text();
Console::WriteLine(portionText);
auto portionFormat = portion->get_PortionFormat();
auto fontHeight = portionFormat->get_FontHeight();
Console::WriteLine(fontHeight);
auto latinFont = portionFormat->get_LatinFont();
if (latinFont != nullptr)
{
auto fontName = latinFont->get_FontName();
Console::WriteLine(fontName);
}
}
}
}
presentation->Dispose();
Εξαγωγή Κειμένου από Παρουσίαση
Για να σαρώσετε το κείμενο σε ολόκληρη την παρουσίαση, χρησιμοποιήστε τη στατική μέθοδο GetAllTextFrames που εκτίθεται από την κλάση SlideUtil. Δέχεται δύο παραμέτρους:
- Πρώτα, ένα αντικείμενο IPresentation που αντιπροσωπεύει μια παρουσίαση PowerPoint ή OpenDocument από την οποία θα εξαχθεί το κείμενο.
- Δεύτερον, μια τιμή
Booleanπου υποδεικνύει εάν οι κύριες διαφάνειες πρέπει να συμπεριληφθούν κατά τη σάρωση του κειμένου στην παρουσίαση.
Η μέθοδος επιστρέφει έναν πίνακα αντικειμένων τύπου ITextFrame, περιλαμβάνοντας πληροφορίες μορφοποίησης κειμένου. Ο παρακάτω κώδικας σαρώνει το κείμενο και τις λεπτομέρειες μορφοποίησης από μια παρουσίαση, συμπεριλαμβανομένων των κύριων διαφανειών.
auto presentation = System::MakeObject<Presentation>(u"demo.pptx");
auto includeMasterSlides = true;
auto textFrames = Util::SlideUtil::GetAllTextFrames(presentation, includeMasterSlides);
for (const auto& textFrame : textFrames)
{
for (const auto& paragraph : textFrame->get_Paragraphs())
{
for (const auto& portion : paragraph->get_Portions())
{
auto portionText = portion->get_Text();
Console::WriteLine(portionText);
auto portionFormat = portion->get_PortionFormat();
auto fontHeight = portionFormat->get_FontHeight();
Console::WriteLine(fontHeight);
auto latinFont = portionFormat->get_LatinFont();
if (latinFont != nullptr)
{
auto fontName = latinFont->get_FontName();
Console::WriteLine(fontName);
}
}
}
}
presentation->Dispose();
Κατηγοριοποιημένη και Γρήγορη Εξαγωγή Κειμένου
Η κλάση PresentationFactory παρέχει επίσης μεθόδους για την εξαγωγή όλου του κειμένου από παρουσιάσεις:
System::SharedPtr<IPresentationText> GetPresentationText(System::String file, TextExtractionArrangingMode mode);
System::SharedPtr<IPresentationText> GetPresentationText(System::SharedPtr<System::IO::Stream> stream, TextExtractionArrangingMode mode);
System::SharedPtr<IPresentationText> GetPresentationText(System::SharedPtr<System::IO::Stream> stream, TextExtractionArrangingMode mode, System::SharedPtr<ILoadOptions> options);
Το όρισμα enum TextExtractionArrangingMode υποδεικνύει τη λειτουργία οργάνωσης του αποτελέσματος εξαγωγής κειμένου και μπορεί να οριστεί στις ακόλουθες τιμές:
Unarranged– Το ακατέργαστο κείμενο χωρίς να ληφθεί υπόψη η θέση του στη διαφάνεια.Arranged– Το κείμενο είναι διατεταγμένο με την ίδια σειρά όπως στη διαφάνεια.
Η λειτουργία Unarranged μπορεί να χρησιμοποιηθεί όταν η ταχύτητα είναι κρίσιμη· είναι ταχύτερη από τη λειτουργία Arranged.
IPresentationText αντιπροσωπεύει το ακατέργαστο κείμενο που εξάγεται από την παρουσίαση. Η μέθοδός του get_SlidesText() επιστρέφει έναν πίνακα αντικειμένων τύπου ISlideText. Κάθε αντικείμενο αντιπροσωπεύει το κείμενο της αντίστοιχης διαφάνειας. Το αντικείμενο τύπου ISlideText διαθέτει τις παρακάτω μεθόδους:
get_Text()– Το κείμενο εντός των σχήματων της διαφάνειας.get_MasterText()– Το κείμενο εντός των σχήματων της κύριας διαφάνειας που σχετίζεται με αυτήν τη διαφάνεια.get_LayoutText()– Το κείμενο εντός των σχήματων της διάταξης διαφάνειας που σχετίζεται με αυτήν τη διαφάνεια.get_NotesText()– Το κείμενο εντός των σχήματων της σημειωμένης διαφάνειας που σχετίζεται με αυτήν τη διαφάνεια.get_CommentsText()– Το κείμενο εντός των σχολίων που σχετίζονται με αυτήν τη διαφάνεια.
auto presentationPath = u"presentation.ppt";
auto arrangingMode = TextExtractionArrangingMode::Unarranged;
auto presentationText = PresentationFactory::get_Instance()->GetPresentationText(presentationPath, arrangingMode);
auto firstSlideText = presentationText->get_SlidesText()[0];
Console::WriteLine(firstSlideText->get_Text());
Console::WriteLine(firstSlideText->get_LayoutText());
Console::WriteLine(firstSlideText->get_MasterText());
Console::WriteLine(firstSlideText->get_NotesText());
Console::WriteLine(firstSlideText->get_CommentsText());
Συχνές Ερωτήσεις
Πόσο γρήγορα επεξεργάζεται το Aspose.Slides μεγάλες παρουσιάσεις κατά την εξαγωγή κειμένου;
Το Aspose.Slides είναι βελτιστοποιημένο για υψηλή απόδοση και μπορεί να επεξεργαστεί ακόμη και large presentations, καθιστώντας το κατάλληλο για σενάρια επεξεργασίας σε πραγματικό χρόνο ή μαζικά.
Μπορεί το Aspose.Slides να εξάγει κείμενο από πίνακες και γραφήματα μέσα σε παρουσιάσεις;
Ναι. Το Aspose.Slides μπορεί να εξάγει κείμενο από πολλά στοιχεία διαφάνειας, συμπεριλαμβανομένων πινάκων και αντικειμένων σχετικών με γραφήματα, ώστε να μπορείτε να έχετε πρόσβαση και να αναλύετε το κειμενικό περιεχόμενο σε κοινές δομές παρουσιάσεων.
Χρειάζομαι ειδική άδεια Aspose.Slides για την εξαγωγή κειμένου από παρουσιάσεις;
Μπορείτε να εξάγετε κείμενο χρησιμοποιώντας τη δωρεάν δοκιμαστική έκδοση του Aspose.Slides, αν και θα έχει certain limitations, όπως η επεξεργασία μόνο περιορισμένου αριθμού διαφανειών. Για απεριόριστη χρήση και για την επεξεργασία μεγαλύτερων παρουσιάσεων, συνιστάται η αγορά πλήρους άδειας.