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

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

Mise a jour des libs pdfparser et TCPDF

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