Erweiterte Textextraktion aus Präsentationen auf Android

Text aus einer Folie extrahieren

Aspose.Slides für Android via Java bietet die Klasse SlideUtil. Diese Klasse stellt eine Reihe überladener statischer Methoden zum Extrahieren des gesamten Textes aus einer Präsentation oder Folie bereit. Um den Text aus einer Folie in einer PPTX‑Präsentation zu extrahieren, verwenden Sie die überladene statische Methode getAllTextBoxes der Klasse SlideUtil. Diese Methode akzeptiert das Slide‑Objekt als Parameter. Bei der Ausführung scannt die Slide‑Methode den gesamten Text der übergebenen Folie und gibt ein Array von TextFrame‑Objekten zurück. Das bedeutet, dass jegliche Textformatierung, die mit dem Text verbunden ist, verfügbar ist. Der folgende Codeabschnitt extrahiert den gesamten Text der ersten Folie der Präsentation:

//Instanziiere die Presentation-Klasse, die eine PPTX-Datei repräsentiert
Presentation pres = new Presentation("demo.pptx");
try {
    for (ISlide slide : pres.getSlides()) 
    {
        //Erhalte ein Array von ITextFrame-Objekten aus allen Folien in der PPTX
        ITextFrame[] textFramesPPTX = SlideUtil.getAllTextBoxes(slide);

        //Durchlaufe das Array von TextFrames
        for (int i = 0; i < textFramesPPTX.length; i++) {
            //Durchlaufe Absätze im aktuellen ITextFrame
            for (IParagraph para : textFramesPPTX[i].getParagraphs()) {
                //Durchlaufe Teile im aktuellen IParagraph
                for (IPortion port : para.getPortions()) {
                    //Zeige den Text im aktuellen Teil an
                    System.out.println(port.getText());

                    //Zeige die Schriftgröße des Textes an
                    System.out.println(port.getPortionFormat().getFontHeight());

                    //Zeige den Schriftartnamen des Textes an
                    if (port.getPortionFormat().getLatinFont() != null)
                        System.out.println(port.getPortionFormat().getLatinFont().getFontName());
                }
            }
        }
    }
} finally {
    pres.dispose();
}

Text aus einer Präsentation extrahieren

Um den Text der gesamten Präsentation zu scannen, verwenden Sie die statische Methode getAllTextFrames der SlideUtil‑Klasse. Sie nimmt zwei Parameter entgegen:

  1. Erstens ein Presentation‑Objekt, das die Präsentation darstellt, aus der der Text extrahiert wird.
  2. Zweitens ein boolescher Wert, der bestimmt, ob die Masterfolie beim Scannen des Textes aus der Präsentation einbezogen werden soll. Die Methode gibt ein Array von TextFrame‑Objekten zurück, das die Textformatierungsinformationen enthält. Der unten stehende Code scannt den Text und die Formatierungsinformationen einer Präsentation, einschließlich der Masterfolien.
//Instanziiere die Presentation-Klasse, die eine PPTX-Datei darstellt
Presentation pres = new Presentation("demo.pptx");
try {
    //Erhalte ein Array von ITextFrame-Objekten aus allen Folien in der PPTX
    ITextFrame[] textFramesPPTX = SlideUtil.getAllTextFrames(pres, true);

    //Durchlaufe das Array von TextFrames
    for (int i = 0; i < textFramesPPTX.length; i++) 
    {
        //Durchlaufe Absätze im aktuellen ITextFrame
        for (IParagraph para : textFramesPPTX[i].getParagraphs())
        {
            //Durchlaufe Teile im aktuellen IParagraph
            for (IPortion port : para.getPortions())
            {
                //Zeige den Text im aktuellen Teil an
                System.out.println(port.getText());

                //Zeige die Schriftgröße des Textes an
                System.out.println(port.getPortionFormat().getFontHeight());

                //Zeige den Schriftartnamen des Textes an
                if (port.getPortionFormat().getLatinFont() != null)
                    System.out.println(port.getPortionFormat().getLatinFont().getFontName());
            }
        }
    }
} finally {
    pres.dispose();
}

Kategorisierte und schnelle Textextraktion

Die neue statische Methode getPresentationText wurde der Klasse Presentation hinzugefügt. Es gibt drei Überladungen für diese Methode:

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

The TextExtractionArrangingMode enum argument indicates the mode to organize the output of text result and can be set to the following values:

  • Unarranged - The raw text with no respect to position on the slide
  • Arranged - The text is positioned in the same order as on the slide

Unarranged mode can be used when speed is critical, it’s faster than Arranged mode.

IPresentationText represents the raw text extracted from the presentation. It contains a getSlidesText method which returns an array of ISlideText objects. Every object represent the text on the corresponding slide. ISlideText object have the following methods:

The new API can be used like this:

IPresentationText text1 = PresentationFactory.getInstance().getPresentationText("presentation.pptx", TextExtractionArrangingMode.Unarranged);
System.out.println(text1.getSlidesText()[0].getText());
System.out.println(text1.getSlidesText()[0].getLayoutText());
System.out.println(text1.getSlidesText()[0].getMasterText());
System.out.println(text1.getSlidesText()[0].getNotesText());

FAQ

Wie schnell verarbeitet Aspose.Slides große Präsentationen bei der Textextraktion?

Aspose.Slides ist für hohe Leistungsfähigkeit optimiert und verarbeitet selbst large presentations effizient, wodurch es für Echtzeit‑ oder Batch‑Verarbeitungsszenarien geeignet ist.

Kann Aspose.Slides Text aus Tabellen und Diagrammen innerhalb von Präsentationen extrahieren?

Ja, Aspose.Slides unterstützt das Extrahieren von Text aus Tabellen, Diagrammen und anderen komplexen Folienelementen, sodass Sie alle textuellen Inhalte leicht zugreifen und analysieren können.

Benötige ich eine spezielle Aspose.Slides‑Lizenz, um Text aus Präsentationen zu extrahieren?

Sie können Text mit der kostenlosen Testversion von Aspose.Slides extrahieren, jedoch hat diese bestimmte Einschränkungen, wie die Verarbeitung nur einer begrenzten Anzahl von Folien. Für uneingeschränkte Nutzung und die Verarbeitung größerer Präsentationen wird der Kauf einer Volllizenz empfohlen.