Speciális szövegkinyerés prezentációkból Androidon

Áttekintés

A prezentációkból származó szöveg kinyerése gyakori, ugyanakkor alapvető feladat a diatartalommal dolgozó fejlesztők számára. Akár Microsoft PowerPoint fájlokkal dolgozol PPT vagy PPTX formátumban, akár OpenDocument prezentációkkal (ODP), a szöveges adatok elérése és kinyerése döntő fontosságú 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 Android via Java segítségével. Megtanulod, hogyan iterálhatsz rendszeresen a prezentációelemeken, hogy pontosan visszanyerd a szükséges szövegtartalmat.

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

Az Aspose.Slides for Android via Java biztosítja a SlideUtil osztályt. 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.
A prezentáció egy diájának szövegének kinyeréséhez használd a getAllTextBoxes metódust. Ez a metódus egy IBaseSlide típusú objektumot vár paraméterként. Végrehajtáskor a metódus bejárja az egész diát szöveg után, és egy ITextFrame típusú objektumok tömbjét adja vissza, megtartva a szövegformázást.

Az alábbi kódrészlet kinyeri a teljes szöveget a prezentáció első diájáról:

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 egy prezentációból

A teljes prezentáció szövegének beolvasásához használd a getAllTextFrames statikus metódust, amelyet a SlideUtil osztály biztosít. Két paramétert fogad:

  1. Először egy IPresentation objektum, amely PowerPoint vagy OpenDocument prezentációt képvisel, amelyből a szöveget ki kell nyerni.
  2. Másodszor egy boolean érték, amely azt jelzi, hogy a mesterdiák is bele legyenek 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. 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.

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öveg kinyerés

A PresentationFactory osztály szintén biztosít módszereket a prezentációkból származó teljes szöveg kinyerésére:

IPresentationText getPresentationText(String file, int mode);
IPresentationText getPresentationText(InputStream stream, int mode);
IPresentationText getPresentationText(InputStream stream, int mode, ILoadOptions options);

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

  • Unarranged - A nyers szöveg a dia pozíciójától függetlenül.
  • Arranged - A szöveg a dián lévő sorrendnek megfelelően van rendezve.

A nem rendezett mód akkor használható, amikor a gyorsaság kritikus; gyorsabb, mint a rendezett mód.

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 képviseli. Az ISlideText típusú objektumnak a következő metódusai vannak:

  • getText - A dia alakzatain belüli szöveg.
  • getMasterText - A mesterdia alakzatain belüli szöveg, amely ehhez a diához kapcsolódik.
  • getLayoutText - A layoutdia alakzatain belüli szöveg, amely ehhez a diához kapcsolódik.
  • getNotesText - A jegyzetdia alakzatain belüli szöveg, amely ehhez a diához kapcsolódik.
  • getCommentsText - A megjegyzésekben szereplő szöveg, amely ehhez a diához kapcsolódik.
String presentationPath = "presentation.pptx";
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 prezentációkat szövegkinyerés közben?
Az Aspose.Slides nagy teljesítményre van optimalizálva, és képes még a nagy prezentációk feldolgozására is, ami 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 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 diagramokkal kapcsolatos objektumokat, így hozzáférhetsz és elemezheted a szöveges tartalmat a szokásos prezentációs struktúrákban.

Szükségem van speciális Aspose.Slides licencre a prezentációk szövegének kinyeréséhez?
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ésehez ajánlott a teljes licenc megvásárlása.