Changeset 75130 in spip-zone


Ignore:
Timestamp:
Aug 30, 2013, 5:53:55 PM (6 years ago)
Author:
lesage.sylvain@…
Message:

Pour un document généré par 'doc2img', remplir le champ ocr du document PDF original au lieu de son propre champ ocr

Dans le cas de documents PDF convertis avec doc2img, un document image
est créé pour chaque page. Quand un de ces documents image est analysé
par OCR, le texte résultant est ajouté dans le champ "ocr" du document
PDF, pas du document image.

De cette manière, les articles qui contiennent un document PDF peuvent
être trouvés au moment de la recherche.

Merci @_fil_ et @maieul pour les idées.

Location:
_plugins_/ocr/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/ocr/trunk/inc/ocr_analyser.php

    r75084 r75130  
    6363                                $resultat['info'] = $texte;
    6464                        } else {
    65                                 // on modifie le champ "ocr" du document dans la base
    66                                 spip_log('Modification du champ "ocr" du document id_document='.$id_document.' dans la base', 'ocr');
    67                                 sql_updateq("spip_documents", array('ocr' => $texte, 'ocr_analyse' => 'oui'), "id_document=".intval($id_document));
     65                                // On teste si le document est une image générée par doc2img (mode='doc2img' + présente dans spip_documents_liens, liée avec un objet 'document')
     66                                $id_document_original = sql_getfetsel("L2.id_objet AS id_document_original","spip_documents as L1 LEFT JOIN spip_documents_liens as L2 ON L1.id_document=L2.id_document","L2.id_document=".intval($id_document).' AND L2.objet="document" AND L1.mode="doc2img"');
     67                                if ($id_document_original) {
     68                                        // Si oui, on colle le texte dans le champ "ocr" du document original (on ne teste pas s'il y a plusieurs documents, ça ne devrait pas)
     69                                        spip_log('Modification du champ "ocr" du document id_document='.$id_document_original.' - c\'est le document original qui avait été converti par doc2img' , 'ocr');
     70                                        $ocr_original = sql_getfetsel("ocr","spip_documents","id_document=".intval($id_document_original));
     71                                        sql_updateq("spip_documents", array('ocr' => $ocr_original.' '.$texte), "id_document=".intval($id_document_original));
     72                                        // Indique que l'image doc2img a été analysée
     73                                        sql_updateq("spip_documents", array('ocr_analyse' => 'oui'), "id_document=".intval($id_document));
     74                                } else {
     75                                        // sinon, on modifie le champ "ocr" de l'image
     76                                        spip_log('Modification du champ "ocr" du document id_document='.$id_document, 'ocr');
     77                                        sql_updateq("spip_documents", array('ocr' => $texte, 'ocr_analyse' => 'oui'), "id_document=".intval($id_document));
     78                                }
    6879                        }
    6980                        $resultat['success'] = true;
  • _plugins_/ocr/trunk/ocr_administrations.php

    r75086 r75130  
    4242        );
    4343
     44        // Forcer l'analyse de tous les documents (changement avec doc2img)
     45        $maj['0.4'] = array(
     46                array('ocr_reinitialiser_totalement_document'),
     47        );
    4448        ecrire_config('palette/palette_public','');
    4549       
    4650        include_spip('base/upgrade');
    4751        maj_plugin($nom_meta_base_version, $version_cible, $maj);
     52}
     53
     54
     55function ocr_reinitialiser_totalement_document() {
     56        sql_updateq("spip_documents", array('ocr' => '', 'ocr_analyse' => 'non'));
    4857}
    4958
  • _plugins_/ocr/trunk/ocr_pipelines.php

    r75100 r75130  
    2525        $tables['rubrique']['document']['ocr'] = 1;
    2626        $tables['breve']['document']['ocr'] = 1;
    27         spip_log($tables ,'ocr');
    2827        return $tables;
    2928}
  • _plugins_/ocr/trunk/paquet.xml

    r75100 r75130  
    77        logo="prive/themes/spip/images/ocr-64.png"
    88        documentation="http://contrib.spip.net/ocr"
    9         schema="0.3"
     9        schema="0.4"
    1010>
    1111        <!--
     
    2525        <necessite nom="saisies" compatibilite="[1.32.4;]" />
    2626
     27        <utilise nom="doc2img" compatibilite="[1.4.3;]" />
     28
    2729        <pipeline nom="declarer_tables_principales" inclure="base/ocr.php" />
    2830        <pipeline nom="taches_generales_cron" inclure="ocr_pipelines.php" />
Note: See TracChangeset for help on using the changeset viewer.