Frage

Ich mag PHP haben las eine (hochgeladen) Powerpoint-Präsentation und minimal den Text extrahierte aus jeder Folie (weitere Informationen wie Bilder und Layout greifen würde noch besser sein, aber ich würde nur für den Text an dieser Stelle niederlassen).

Ich weiß, dass Google Apps tut es in seiner Präsentation app, so dass ich vermute, es eine Möglichkeit ist die Powerpoint-binär zu übersetzen, aber ich kann keine Informationen zu finden scheinen, wie man es tun.

Alle Ideen, was zu versuchen?

Danke -

War es hilfreich?

Lösung 4

Ich wollte meine Entschließung posten.

Leider war ich nicht in der Lage PHP zu bekommen, um zuverlässig die binären Daten zu lesen.

war meine Lösung eine kleine VB6 app zu schreiben, das macht die Arbeit von Powerpoint automatisiert werden.

Nicht das, was ich suchte, aber löst das Problem für jetzt.

aber sagen, dass die Zend Option sieht aus wie es irgendwann rentabel sein kann, also werde ich das sehen.

Danke.

Andere Tipps

Je nach Ausführung können Sie einen Blick auf die Zend Framework nehmen als Zend_Search_Lucene indizieren Powerpoint 2007-Dateien können ist. Werfen Sie einen Blick auf die entsprechenden Klassendatei, ich glaube, es so etwas wie Zend_Search_Lucene_Document_Pptx ist.

Ja natürlich ist es möglich.

[Hier ist ein Anfang.] ( http://download.microsoft.com/download/0/B/E/0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/PowerPoint97-2007BinaryFileFormat (ppt) Spezifikation.pdf) ich würde es nicht sagen, sehr gut dokumentiert / formated, aber es ist nicht so schwer, wenn Sie beginnen. Beginnen Sie, indem sich nur auf Elemente, die Sie benötigen (Dia-, Text, usw.).

Ein weniger detailliert und einfacherer Ansatz für Informationen PPT-Datei in Hex-Editor zu öffnen und zu sehen sein würden Sie in interesed sind (sollen Sie in der Lage sein, Text innerhalb der binären Daten zu sehen) und was ihn umgibt. Dann auf das, was diese Informationen umgibt Sie einen Parser schreiben könnte, die diese Informationen extrahiert.

Hier ist eine Beispielfunktion erstellt I bilden einen ähnlich ein , den Text aus Word-Dokumenten extrahiert. Getestet habe ich es mit Microsoft Powerpoint-Dateien, aber es wird nicht dekodieren OpenOfficeImpress Dateien als .ppt gespeichert

Für PPTX-Dateien Sie vielleicht einen Blick auf Zend Lucene nehmen wollen.

    function parsePPT($filename) {
    // This approach uses detection of the string "chr(0f).Hex_value.chr(0x00).chr(0x00).chr(0x00)" to find text strings, which are then terminated by another NUL chr(0x00). [1] Get text between delimiters [2] 
    $fileHandle = fopen($filename, "r");
    $line = @fread($fileHandle, filesize($filename));
    $lines = explode(chr(0x0f),$line);
    $outtext = '';

    foreach($lines as $thisline) {
        if (strpos($thisline, chr(0x00).chr(0x00).chr(0x00)) == 1) {
            $text_line = substr($thisline, 4);
            $end_pos   = strpos($text_line, chr(0x00));
            $text_line = substr($text_line, 0, $end_pos);
            $text_line = preg_replace("/[^a-zA-Z0-9\s\,\.\-\n\r\t@\/\_\(\)]/","",$text_line);
            if (strlen($text_line) > 1) {
                $outtext.= substr($text_line, 0, $end_pos)."\n";
            }
        }
    }
    return $outtext;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top