Question

Je souhaite que PHP lise une présentation PowerPoint (téléchargée) et extraye le texte de chaque diapositive au minimum (saisir davantage d'informations telles que des images et des mises en page serait encore mieux, mais je me contenterais du texte à ce stade).

Je sais que Google Apps le fait dans son application de présentation. Je suppose donc qu'il existe un moyen de traduire le fichier binaire powerpoint, mais il me semble que je ne trouve aucune information sur la façon de le faire.

Des idées sur ce qu'il faut essayer?

Merci -

Était-ce utile?

La solution 4

Je voulais poster ma résolution à ce sujet.

Malheureusement, je n’ai pas pu faire en sorte que PHP lise de manière fiable les données binaires.

Ma solution consistait à écrire une petite application vb6 qui effectue le travail en automatisant PowerPoint.

Ce n'est pas ce que je cherchais, mais cela résout le problème pour l'instant.

Cela étant dit, l'option Zend semble pouvoir être viable à un moment donné, alors je vais regarder ça.

Merci.

Autres conseils

Selon la version, vous pouvez jeter un coup d'œil sur Zend Framework, car Zend_Search_Lucene est capable d'indexer les fichiers PowerPoint 2007. Jetez un coup d’œil au fichier de classe correspondant, je pense que c’est quelque chose comme Zend_Search_Lucene_Document_Pptx .

Oui bien sûr que c'est possible.

[Voici un début.] ( http://download.microsoft.com/download/0/B/E/0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/PowerPoint97-2007BinaryFileFormat (ppt) Specification.pdf) Je ne dirais pas que c'est très bien documenté / formaté, mais ce n'est pas si difficile une fois que vous avez commencé. Commencez par vous concentrer uniquement sur les éléments dont vous avez besoin (diapositives, texte, etc.).

Une approche moins détaillée et plus simple consisterait à ouvrir un fichier .ppt dans un éditeur hexadécimal et à rechercher les informations qui vous intéressent (vous devriez pouvoir voir du texte dans les données binaires) et ce qui l’entoure. Ensuite, en fonction de ce qui entoure cette information, vous pouvez écrire un analyseur qui extrait cette information.

Voici un exemple de fonction que j'ai créée sous forme de similaire. un qui extrait le texte des documents Word. Je l'ai testé avec des fichiers Microsoft PowerPoint, mais il ne décodera pas les fichiers OpenOfficeImpress enregistrés au format .ppt

Pour les fichiers .pptx, jetez un œil à Zend Lucene.

    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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top