Fejlett szövegkinyerés prezentációkból Java-ban
Áttekintés
A prezentációkból szöveg kinyerése gyakori, ugyanakkor elengedhetetlen feladat a diák tartalmával dolgozó fejlesztők számára. Legyen szó Microsoft PowerPoint fájlokról PPT vagy PPTX formátumban, vagy OpenDocument prezentációkról (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ós formátumokból, beleértve a PPT, PPTX és ODP formátumokat, az Aspose.Slides for Java használatával. Megtanulod, hogyan lehet rendszerezetten végigjárni a prezentáció elemeit a szükséges szövegtartalom pontos visszanyerése érdekében.
Dia szövegének kinyerése
Az Aspose.Slides for Java a SlideUtil osztályt biztosítja. Ez az osztály több túlterhelt statikus metódust kínál a teljes szöveg kinyerésére egy prezentációból vagy diából. Egy diáról történő szövegkinyeréshez használd a SlideUtil.getAllTextBoxes metódust. Ez a metódus egy IBaseSlide típusú objektumot vár paraméterként. A végrehajtás során a metódus végigellenőrzi a teljes diát, és egy ITextFrame típusú objektumok tömbjét adja vissza, megőrizve minden szövegformázást.
Az alábbi kódrészlet kinyeri a prezentáció első diájának teljes szövegét:
int slideIndex = 0;
Presentation presentation = new Presentation("demo.pptx");
try {
ISlide slide = presentation.getSlides().get_Item(slideIndex);
ITextFrame[] textFrames = SlideUtil.getAllTextBoxes(slide);
for (ITextFrame textFrame : textFrames) {
for (IParagraph paragraph : textFrame.getParagraphs()) {
for (IPortion portion : paragraph.getPortions()) {
String portionText = portion.getText();
System.out.println(portionText);
IPortionFormat portionFormat = portion.getPortionFormat();
float fontHeight = portionFormat.getFontHeight();
System.out.println(fontHeight);
IFontData latinFont = portionFormat.getLatinFont();
if (latinFont != null) {
String fontName = latinFont.getFontName();
System.out.println(fontName);
}
}
}
}
} finally {
presentation.dispose();
}
Szöveg kinyerése a bemutatóból
A teljes prezentáció szövegének beolvasásához használd a SlideUtil.getAllTextFrames statikus metódust, amely a SlideUtil osztályban érhető el. 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ásodszor egy
booleanértéket, amely azt jelzi, hogy a mesterdíák is bele legyenek-e vonva a szöveg beolvasásakor.
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 egy prezentációból, beleértve a mesterdíákat is.
Presentation presentation = new Presentation("demo.pptx");
try {
boolean includeMasterSlides = true;
ITextFrame[] textFrames = SlideUtil.getAllTextFrames(presentation, includeMasterSlides);
for (ITextFrame textFrame : textFrames) {
for (IParagraph paragraph : textFrame.getParagraphs()) {
for (IPortion portion : paragraph.getPortions()) {
String portionText = portion.getText();
System.out.println(portionText);
IPortionFormat portionFormat = portion.getPortionFormat();
float fontHeight = portionFormat.getFontHeight();
System.out.println(fontHeight);
IFontData latinFont = portionFormat.getLatinFont();
if (latinFont != null) {
String fontName = latinFont.getFontName();
System.out.println(fontName);
}
}
}
}
} finally {
presentation.dispose();
}
Kategorizált és gyors szövegkinyerés
A PresentationFactory osztály szintén nyújt módszereket a prezentációk teljes szövegének kinyerésére:
IPresentationText getPresentationText(String file, int mode);
IPresentationText getPresentationText(InputStream stream, int mode);
IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options);
A TextExtractionArrangingMode enum argumentum határozza meg a szövegkinyerés eredményének rendezési módját, és a következő értékekre állítható:
Unarranged– A nyers szöveg a dia pozícióját figyelembe véve, rendezés nélkül.Arranged– A szöveg ugyanabban a sorrendben van, mint a dián.
A rendezés nélküli mód akkor használható, amikor a sebesség kritikus; gyorsabb, mint a rendezett mód.
Az IPresentationText a prezentációból kinyert nyers szöveget képviseli. A getSlidesText metódusa egy ISlideText típusú objektumok tömbjét adja vissza. Minden objektum a megfelelő dia szövegét reprezentálja. Az ISlideText típusú objektumnak a következő metódusai vannak:
getText– A dia alakzatai közötti szöveg.getMasterText– A mesterdia alakzataihoz tartozó szöveg.getLayoutText– A layoutdia alakzataihoz tartozó szöveg.getNotesText– A jegyzetdia alakzataihoz tartozó szöveg.getCommentsText– A megjegyzésekhez tartozó szöveg.
String presentationPath = "presentation.ppt";
int arrangingMode = TextExtractionArrangingMode.Unarranged;
IPresentationText presentationText = PresentationFactory.getInstance().getPresentationText(presentationPath, arrangingMode);
ISlideText firstSlideText = presentationText.getSlidesText()[0];
System.out.println(firstSlideText.getText());
System.out.println(firstSlideText.getLayoutText());
System.out.println(firstSlideText.getMasterText());
System.out.println(firstSlideText.getNotesText());
System.out.println(firstSlideText.getCommentsText());
GYIK
Milyen gyorsan dolgozza fel az Aspose.Slides a nagy bemutatókat a szövegkinyerés során?
Az Aspose.Slides magas teljesítményre van optimalizálva, és még a nagy bemutatókat is képes feldolgozni, így alkalmas valós idejű vagy tömeges feldolgozási forgatókönyvekre.
Képes az Aspose.Slides szöveget kinyerni a táblázatokból és diagrammokból a bemutatókban?
Igen. Az Aspose.Slides képes szöveget kinyerni sok dián szereplő elemből, beleértve a táblázatokat és a diagramokhoz kapcsolódó objektumokat, így hozzáférhet és elemezheti a gyakori prezentációs struktúrák szöveges tartalmát.
Szükségem van speciális Aspose.Slides licencre a bemutatók szövegének kinyeréséhez?
A szöveget a Aspose.Slides ingyenes próbaverziójával is ki lehet 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 a teljes licenc megvásárlása ajánlott.