source: spip-zone/_plugins_/extraire_documents/trunk/extraire/fallback/application_pdf/90_pdfparser.php @ 110744

Last change on this file since 110744 was 110744, checked in by cedric@…, 3 years ago

indentation

File size: 1.6 KB
Line 
1<?php
2
3/**
4 * Tester si cette méthode d'extraction est disponible
5 **/
6function extraire_fallback_application_pdf_90_pdfparser_test_dist(){
7        if (
8                find_in_path('lib/TCPDF-6.2.17')
9                and find_in_path('lib/pdfparser-0.12.0/src')
10        ){
11                return true;
12        } else {
13                return false;
14        }
15}
16
17/**
18 * Extraire le contenu pour le mime type pdf
19 *
20 *
21 * @param $fichier le fichier à traiter
22 * @return Scontenu le contenu brut
23 **/
24function extraire_fallback_application_pdf_90_pdfparser_extraire_dist($fichier){
25        $infos = array('contenu' => false);
26        $contenu = '';
27
28        // Bespoin de charger composer
29        if (!class_exists('Composer\\Autoload\\ClassLoader')){
30                include_spip('lib/Composer/Autoload/ClassLoader');
31        }
32        include_spip('lib/TCPDF-6.2.17/tcpdf_parser');
33
34        $loader = new \Composer\Autoload\ClassLoader();
35
36        // register classes with namespaces
37        $loader->add('Smalot\PdfParser', find_in_path('lib/pdfparser-0.12.0/src'));
38        $loader->register();
39
40        $parser = new \Smalot\PdfParser\Parser();
41        //Tenter de lire le pdf
42        try {
43                set_time_limit(0);
44                $pdf = $parser->parseFile($fichier);
45        } catch (Exception $e) {
46                //Pour toute exception on s'arrete et on retourne un contenu vide
47                //Les cas de figure sont entre autre les fichiers mal formés ou signés
48                return '';
49        }
50
51        // Parcourir les pages et extraire le contenu textuel
52        try {
53                foreach ($pdf->getPages() as $page){
54                        $contenu .= $page->getText();
55                }
56        } catch (Exception $e) {
57                //si on ne peut extraire le texte on passe à la page suivante
58                $contenu .= '';
59        }
60
61        //Libérer les ressources
62        unset($parser);
63        unset($loader);
64
65        // Si on a trouvé du texte
66        if ($contenu){
67                $infos['contenu'] = $contenu;
68        }
69
70        return $infos;
71}
Note: See TracBrowser for help on using the repository browser.