Speciális szövegkivonás prezentációkból Python nyelven
Áttekintés
A prezentációkból szöveg kinyerése gyakori, ugyanakkor alapvető feladat a dia tartalmával dolgozó fejlesztők számára. Akár Microsoft PowerPoint fájlokkal PPT vagy PPTX formátumban dolgozol, akár OpenDocument prezentációkkal (ODP), a szöveges adatok elérése és kinyeré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óformátumokból, beleértve a PPT, PPTX és ODP formátumokat, az Aspose.Slides for Python via .NET segítségével. Megtanulod, hogyan lehet rendszerszerűen végigjárni a prezentációelemeket a szükséges szövegtartalom pontos lekéréséhez.
Szöveg kinyerése egy diáról
Aspose.Slides for Python via .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 tesz elérhetővé a teljes szöveg kinyerésére egy prezentációból vagy diából. Egy diából való szövegkivonáshoz egy prezentációban, használd a get_all_text_boxes metódust. Ez a metódus egy BaseSlide típusú objektumot fogad paraméterként. Végrehajtáskor a metódus átvizsgálja az egész diát a szöveg után, és egy TextFrame típusú objektumok tömbjét adja vissza, megtartva a szövegformázást.
Az alábbi kódrészlet kinyeri a prezentáció első diáján lévő összes szöveget:
import aspose.slides as slides
slide_index = 0
with slides.Presentation("demo.pptx") as presentation:
slide = presentation.slides[slide_index]
text_frames = slides.util.SlideUtil.get_all_text_boxes(slide)
for text_frame in text_frames:
for paragraph in text_frame.paragraphs:
for portion in paragraph.portions:
portion_text = portion.text
print(portion_text)
portion_format = portion.portion_format
font_height = portion_format.font_height
print(font_height)
latin_font = portion_format.latin_font
if latin_font is not None:
font_name = latin_font.font_name
print(font_name)
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 get_all_text_frames statikus metódust. Két paramétert fogad:
- Először egy Presentation objektumot, amely a kinyerni kívánt szöveget tartalmazó PowerPoint vagy OpenDocument prezentációt reprezentálja.
- Másodszor egy
Booleanértéket, amely azt jelzi, hogy a mester diák is bele legyenek vonva a prezentáció szövegének beolvasásakor.
A metódus egy TextFrame típusú objektumok tömbjét adja vissza, beleértve a szövegformázási információkat. Az alábbi kód beolvassa a szöveget és a formázási részleteket egy prezentációból, beleértve a mester diákat.
import aspose.slides as slides
with slides.Presentation("demo.pptx") as presentation:
include_master_slides = True
text_frames = slides.util.SlideUtil.get_all_text_frames(presentation, include_master_slides)
for text_frame in text_frames:
for paragraph in text_frame.paragraphs:
for portion in paragraph.portions:
portion_text = portion.text
print(portion_text)
portion_format = portion.portion_format
font_height = portion_format.font_height
print(font_height)
latin_font = portion_format.latin_font
if latin_font is not None:
font_name = latin_font.font_name
print(font_name)
Kategorizált és gyors szövegkivonás
A PresentationFactory osztály szintén biztosít módszereket a prezentációkból való teljes szövegkivonáshoz:
PresentationFactory.get_presentation_text(file, mode)
PresentationFactory.get_presentation_text(stream, mode)
PresentationFactory.get_presentation_text(stream, mode, options)
A TextExtractionArrangingMode felsorolás argumentuma jelzi a szövegkivonási eredmény rendezésének módját, és a következő értékek közül állítható be:
UNARRANGED– A nyers szöveg a dia pozíciójától függetlenül.ARRANGED– A szöveg a diához hasonló sorrendben van rendezve.
A UNARRANGED mód akkor használható, amikor a sebesség kritikus; gyorsabb a ARRANGED móddal szemben.
A PresentationText a prezentációból kinyert nyers szöveget képviseli. slides_text tulajdonsága egy diaszöveg objektumok tömbjét adja vissza. Minden objektum a megfelelő dia szövegét reprezentálja, és a következő tulajdonságokkal rendelkezik:
text– A dián lévő alakzatok szövege.master_text– A mester dia alakzataiban lévő szöveg, amely ehhez a diához tartozik.layout_text– Az elrendezés dia alakzataiban lévő szöveg, amely ehhez a diához tartozik.notes_text– A jegyzet dia alakzataiban lévő szöveg, amely ehhez a diához tartozik.comments_text– A diához tartozó kommentek szövege.
import aspose.slides as slides
presentation_path = "presentation.ppt"
arranging_mode = slides.TextExtractionArrangingMode.UNARRANGED
presentation_text = slides.PresentationFactory.instance.get_presentation_text(presentation_path, arranging_mode)
first_slide_text = presentation_text.slides_text[0]
print(first_slide_text.text)
print(first_slide_text.layout_text)
print(first_slide_text.master_text)
print(first_slide_text.notes_text)
print(first_slide_text.comments_text)
GYIK
Milyen gyorsan dolgozza fel az Aspose.Slides a nagy prezentációkat szövegkivonás során?
Az Aspose.Slides nagy teljesítményre van optimalizálva, és még a nagy prezentációkat is képes feldolgozni, így alkalmas valós időben vagy tömeges feldolgozási forgatókönyvekre.
Kivonhat-e az Aspose.Slides szöveget táblázatokból és diagramokból a prezentációkban?
Igen. Az Aspose.Slides sok dián szereplő elemből tud szöveget kivonni, beleértve a táblázatokat és a diagramokhoz kapcsolódó objektumokat, így hozzáférhetsz és elemezheted a szöveges tartalmat a gyakori prezentációs struktúrákban.
Szükségem van speciális Aspose.Slides licencre a prezentációkból való szövegkivonáshoz?
A szöveget a Aspose.Slides ingyenes próbaverziójával is ki tudod nyerni, bár ez bizonyos korlátozásokkal jár, például csak korlátozott számú dia feldolgozásával. Korlátlan használathoz és nagyobb prezentációk kezeléséhez ajánlott teljes licencet vásárolni.