Fejlett szövegkivonás prezentációkból JavaScriptben
Áttekintés
A prezentációkból szöveg kinyerése gyakori, ugyanakkor fontos feladat a diák tartalmával dolgozó fejlesztők számára. Akár Microsoft PowerPoint fájlokkal (PPT vagy PPTX formátumban), akár OpenDocument prezentációkkal (ODP) dolgozol, a szöveges adatok elérése és kinyerése kritikus lehet elemzés, automatizálás, indexelés vagy tartalom migráció céljaira.
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 Node.js via Java segítségével. Megtanulod, hogyan iterálj rendszerezetten 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 Node.js via Java a SlideUtil osztályt biztosítja. Ez az osztály több túlterhelt statikus metódust tesz elérhetővé a prezentáció vagy dia összes szövegének kinyerésére. Egy diából történő szövegkivonáshoz a getAllTextBoxes metódust kell használni. Ez a metódus egy diaobjektumot vár paraméterként. Végrehajtáskor a metódus átvizsgálja az egész diát a szövegért, és egy TextFrame objektumok tömbjét adja vissza, megőrizve a szövegformázást.
Az alábbi kódrészlet a prezentáció első diájából nyeri ki az összes szöveget:
const slideIndex = 0;
const presentation = new aspose.slides.Presentation("demo.pptx");
try {
const slide = presentation.getSlides().get_Item(slideIndex);
const textFrames = aspose.slides.SlideUtil.getAllTextBoxes(slide);
for (let textFrameIndex = 0; textFrameIndex < textFrames.length; textFrameIndex++) {
const textFrame = textFrames[textFrameIndex];
const paragraphs = textFrame.getParagraphs();
const paragraphCount = paragraphs.getCount();
for (let paragraphIndex = 0; paragraphIndex < paragraphCount; paragraphIndex++) {
const paragraph = paragraphs.get_Item(paragraphIndex);
const portions = paragraph.getPortions();
const portionCount = portions.getCount();
for (let portionIndex = 0; portionIndex < portionCount; portionIndex++) {
const portion = portions.get_Item(portionIndex);
const portionText = portion.getText();
console.log(portionText);
const portionFormat = portion.getPortionFormat();
const fontHeight = portionFormat.getFontHeight();
console.log(fontHeight);
const latinFont = portionFormat.getLatinFont();
if (latinFont !== null) {
const fontName = latinFont.getFontName();
console.log(fontName);
}
}
}
}
} finally {
presentation.dispose();
}
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 vár:
- Először egy Presentation objektumot, amely PowerPoint vagy OpenDocument prezentációt reprezentál, amelyből a szöveget ki szeretnénk nyerni.
- Másodszor egy
booleanértéket, amely azt jelzi, hogy a mesterdiák is be legyenek-e vonva a szöveg beolvasásakor.
A metódus egy TextFrame objektumok tömbjét adja vissza, a szövegformázási információkat is tartalmazva. Az alábbi kód beolvassa a szöveget és a formázási részleteket egy prezentációból, beleértve a mesterdiákat.
const presentation = new aspose.slides.Presentation("demo.pptx");
try {
const includeMasterSlides = true;
const textFrames = aspose.slides.SlideUtil.getAllTextFrames(presentation, includeMasterSlides);
for (let textFrameIndex = 0; textFrameIndex < textFrames.length; textFrameIndex++) {
const textFrame = textFrames[textFrameIndex];
const paragraphs = textFrame.getParagraphs();
const paragraphCount = paragraphs.getCount();
for (let paragraphIndex = 0; paragraphIndex < paragraphCount; paragraphIndex++) {
const paragraph = paragraphs.get_Item(paragraphIndex);
const portions = paragraph.getPortions();
const portionCount = portions.getCount();
for (let portionIndex = 0; portionIndex < portionCount; portionIndex++) {
const portion = portions.get_Item(portionIndex);
const portionText = portion.getText();
console.log(portionText);
const portionFormat = portion.getPortionFormat();
const fontHeight = portionFormat.getFontHeight();
console.log(fontHeight);
const latinFont = portionFormat.getLatinFont();
if (latinFont !== null) {
const fontName = latinFont.getFontName();
console.log(fontName);
}
}
}
}
} finally {
presentation.dispose();
}
Kategorizált és gyors szövegkivonás
A PresentationFactory osztály szintén biztosít módszereket a prezentációkból származó összes szöveg kinyerésére:
PresentationText getPresentationText(String file, int mode);
PresentationText getPresentationText(InputStream stream, int mode);
PresentationText getPresentationText(InputStream stream, int mode, LoadOptions options);
A TextExtractionArrangingMode enum argumentum jelzi a szövegkivonási eredmény rendezésének módját, és a következő értékekre állítható:
Unarranged– A nyers szöveg, amely nem veszi figyelembe a dia pozícióját.Arranged– A szöveg a dián található sorrendben van rendezve.
Az unarranged mód akkor használható, amikor a sebesség kritikus; gyorsabb, mint a rendezett mód.
A PresentationText a prezentációból kinyert nyers szöveget képviseli. A getSlidesText metódusa egy objektumtömböt ad vissza, ahol minden objektum a megfelelő dia szövegét tartalmazza. Minden dia szöveg objektumnak a következő metódusai vannak:
getTextmetódusa visszaadja a dia alakzatain belüli szöveget.getMasterTextmetódusa visszaadja a mesterdia alakzataiban lévő szöveget, amely ehhez a diához kapcsolódik.getLayoutTextmetódusa visszaadja a elrendezésdia alakzataiban lévő szöveget, amely ehhez a diához kapcsolódik.getNotesTextmetódusa visszaadja a jegyzetdiák alakzataiban lévő szöveget, amely ehhez a diához kapcsolódik.getCommentsTextmetódusa visszaadja a megjegyzésekben lévő szöveget, amely ehhez a diához kapcsolódik.
const presentationPath = "presentation.ppt";
const arrangingMode = aspose.slides.TextExtractionArrangingMode.Unarranged;
const presentationText = aspose.slides.PresentationFactory.getInstance().getPresentationText(presentationPath, arrangingMode);
const firstSlideText = presentationText.getSlidesText()[0];
console.log(firstSlideText.getText());
console.log(firstSlideText.getLayoutText());
console.log(firstSlideText.getMasterText());
console.log(firstSlideText.getNotesText());
console.log(firstSlideText.getCommentsText());
GYIK
Milyen gyorsan dolgozza fel az Aspose.Slides a nagy prezentációkat a szövegkivonás során?
Az Aspose.Slides magas teljesítményre van optimalizálva, és képes feldolgozni még a nagy prezentációkat, így alkalmas valós idejű vagy nagyméretű kötegelt feldolgozási forgatókönyvekre.
Képes az Aspose.Slides szöveget kinyerni a prezentációk táblázataiból és diagramjaiból?
Igen. Az Aspose.Slides képes szöveget kinyerni számos diatelemből, többek között táblázatokból és diagramokhoz kapcsolódó objektumokból, így hozzáférhet és elemezhet a szöveges tartalmat a gyakori prezentációs struktúrákban.
Szükségem van-e speciális Aspose.Slides licencre a prezentációkból történő szövegkivonáshoz?
A szöveget kinyerheted az Aspose.Slides ingyenes próba verziójával, 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 teljes licenc megvásárlása ajánlott.