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:
- 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.
- 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.