Fejlett szövegkinyerés prezentációkból .NET-ben

Áttekintés

A prezentációkból szöveg kinyerése gyakori, ám elengedhetetlen feladat a diák tartalmával dolgozó fejlesztők számára. Akár Microsoft PowerPoint fájlokkal (PPT vagy PPTX), akár OpenDocument prezentációkkal (ODP) dolgozol, a szöveges adatok elérése és visszanyerése kritikus lehet elemzés, automatizálás, indexelés vagy tartalom migráció céljából.

Ez a cikk átfogó útmutatót nyújt arról, hogyan lehet hatékonyan kinyerni a szöveget különböző prezentációs formátumokból, beleértve a PPT, PPTX és ODP formátumokat, az Aspose.Slides for .NET segítségével. Megtanulod, hogyan iterálj rendszeresen a prezentációelemeken a szükséges szövegtartalom pontos visszanyerése érdekében.

Szöveg kinyerése egy diából

Az Aspose.Slides for .NET biztosítja a Aspose.Slides.Util névteret, amely tartalmazza a SlideUtil osztályt. Ez az osztály több túlterhelt statikus metódust kínál a prezentáció vagy dia összes szövegének kinyerésére. Egy prezentáció egy diájáról történő szövegkivonáshoz használd a GetAllTextBoxes metódust. Ez a metódus egy IBaseSlide típusú objektumot fogad paraméterként. A végrehajtás során a metódus bejárja a teljes diát a szöveg után és egy ITextFrame típusú objektumok tömbjét adja vissza, megőrizve a szövegformázást.

Az alábbi kódrészlet kinyeri a prezentáció első diájának az összes szövegét:

int slideIndex = 0;

using var presentation = new Presentation("demo.pptx");

var slide = presentation.Slides[slideIndex];

var textFrames = Aspose.Slides.Util.SlideUtil.GetAllTextBoxes(slide);

foreach (var textFrame in textFrames)
{
    foreach (var paragraph in textFrame.Paragraphs)
    {
        foreach (var portion in paragraph.Portions)
        {
            var portionText = portion.Text;
            Console.WriteLine(portionText);

            var portionFormat = portion.PortionFormat;
            var fontHeight = portionFormat.FontHeight;
            Console.WriteLine(fontHeight);

            var latinFont = portionFormat.LatinFont;
            if (latinFont != null)
            {
                var fontName = latinFont.FontName;
                Console.WriteLine(fontName);
            }
        }
    }
}

Szöveg kinyerése egy prezentációból

Az egész prezentáció szövegének beolvasásához használd a SlideUtil osztály által biztosított GetAllTextFrames statikus metódust. Két paramétert fogad:

  1. Először egy IPresentation objektumot, amely egy PowerPoint vagy OpenDocument prezentációt képvisel, amelyből a szöveget ki szeretnénk nyerni.
  2. Másodként egy Boolean értéket, amely azt jelzi, hogy a mesterdia-kat is bele kell-e venni a szövegvizsgálatba.

A metódus egy ITextFrame típusú objektumok tömbjét adja vissza, beleértve a szövegformázási információkat is. Az alábbi kód beolvassa a szöveget és a formázási részleteket a prezentációból, beleértve a mesterdia-kat is.

using var presentation = new Presentation("demo.pptx");

var includeMasterSlides = true;
var textFrames = Aspose.Slides.Util.SlideUtil.GetAllTextFrames(presentation, includeMasterSlides);

foreach (var textFrame in textFrames)
{
    foreach (var paragraph in textFrame.Paragraphs)
    {
        foreach (var portion in paragraph.Portions)
        {
            var portionText = portion.Text;
            Console.WriteLine(portionText);

            var portionFormat = portion.PortionFormat;
            var fontHeight = portionFormat.FontHeight;
            Console.WriteLine(fontHeight);

            var latinFont = portionFormat.LatinFont;
            if (latinFont != null)
            {
                var fontName = latinFont.FontName;
                Console.WriteLine(fontName);
            }
        }
    }
}

Kategorizált és gyors szövegkinyerés

A PresentationFactory osztály szintén metódusokat biztosít a prezentációk összes szövegének kinyerésére:

IPresentationText GetPresentationText(string file, TextExtractionArrangingMode mode);
IPresentationText GetPresentationText(Stream stream, TextExtractionArrangingMode mode);
IPresentationText GetPresentationText(Stream stream, TextExtractionArrangingMode mode, ILoadOptions options);

A TextExtractionArrangingMode enum argumentum határozza meg a szövegkinyerési eredmény rendezésének módját, és a következő értékekkel állítható be:

  • Unarranged – A nyers szöveg, a dia helyzetére tekintet nélkül.
  • Arranged – A szöveg a dián látható sorrendben van rendezve.

Az Unarranged módot akkor használhatod, ha a sebesség kritikus; ez gyorsabb, mint a Arranged mód.

Az IPresentationText a prezentációból kinyert nyers szöveget képviseli. SlidesText tulajdonsága egy ISlideText típusú objektumok tömbjét adja vissza. Minden objektum a megfelelő dia szövegét reprezentálja. A ISlideText típusú objektumnak a következő tulajdonságai vannak:

  • Text – A dia alakzatain belüli szöveg.
  • MasterText – A mesterdia alakzatain belüli szöveg, amely ehhez a diához tartozik.
  • LayoutText – A layoutdia alakzatain belüli szöveg, amely ehhez a diához tartozik.
  • NotesText – A jegyzetdia alakzatain belüli szöveg, amely ehhez a diához tartozik.
  • CommentsText – A megjegyzésekben lévő szöveg, amely ehhez a diához tartozik.
var presentationPath = "presentation.ppt";
var arrangingMode = TextExtractionArrangingMode.Unarranged;
var presentationText = PresentationFactory.Instance.GetPresentationText(presentationPath, arrangingMode);
var firstSlideText = presentationText.SlidesText[0];

Console.WriteLine(firstSlideText.Text);
Console.WriteLine(firstSlideText.LayoutText);
Console.WriteLine(firstSlideText.MasterText);
Console.WriteLine(firstSlideText.NotesText);
Console.WriteLine(firstSlideText.CommentsText);

GYIK

Mennyire gyorsan dolgozza fel az Aspose.Slides a nagy prezentációkat a szövegkinyerés során?

Az Aspose.Slides magas teljesítményre van optimalizálva, és még nagy prezentációkat is képes feldolgozni, így alkalmas valós idejű vagy tömeges feldolgozási forgatókönyvekre.

Képes-e az Aspose.Slides szöveget kinyerni a táblázatokból és diagramokból a prezentációkban?

Igen. Az Aspose.Slides képes szöveget kinyerni a diák számos eleméből, beleértve a táblázatokat és a diagramokhoz kapcsolódó objektumokat, így hozzáférhetsz és elemezheted a szöveges tartalmat a közös prezentációs struktúrákban.

Szükségem van külön licencre az Aspose.Slides-hoz a prezentációk szövegének kinyeréséhez?

A szöveget a Aspose.Slides ingyenes próbaverziójával is kinyerheted, bár ez bizonyos korlátozásokkal jár, például csak korlátozott számú dia feldolgozható. Korlátlan használathoz és nagyobb prezentációk kezeléséhez teljes licenc vásárlását ajánljuk.