source: spip-zone/_plugins_/convertisseur/trunk/spip-cli/pdf2img.php @ 94582

Last change on this file since 94582 was 94582, checked in by booz@…, 5 years ago

conversion pdf2img

File size: 2.3 KB
Line 
1<?php
2
3/***
4
5        Convertir des fichiers PDF format JPG avec imagemagick convert.
6        Installer Image Magick pour que cela fonctionne. (brew install imagemagick sous Mac)
7       
8        Mettre un PDF dans conversion_spip/ et lancer la commande spip-cli  : spip pdf2img
9        Si votre PDF source est ailleurs ou si vous vouler mettre les images ailleurs, lancer la commande : spip pdf2img -s "path/to/pdf" -d "path/to/dest"
10
11*/
12
13
14use Symfony\Component\Console\Command\Command;
15use Symfony\Component\Console\Input\InputArgument;
16use Symfony\Component\Console\Input\InputInterface;
17use Symfony\Component\Console\Input\InputOption;
18use Symfony\Component\Console\Output\OutputInterface;
19
20class pdf2img extends Command {
21        protected function configure() {
22                $this
23                        ->setName('conversion:pdf2img')
24                        ->setDescription('Conversion d\'un PDF en images')
25                        ->setAliases(array(
26                                'pdf2img' // abbréviation commune pour ca
27                        ))
28                        ->addOption(
29                                'source',
30                                's',
31                                InputOption::VALUE_OPTIONAL,
32                                'Répertoire source',
33                                'conversion_spip'
34                        )
35                        ->addOption(
36                                'dest',
37                                'd',
38                                InputOption::VALUE_OPTIONAL,
39                                'Répertoire de destination',
40                                'conversion_spip'
41                        )
42                ;
43        }
44
45        protected function execute(InputInterface $input, OutputInterface $output) {
46                global $spip_racine;
47                global $spip_loaded;
48               
49                include_spip("iterateur/data");
50               
51                $source = $input->getOption('source') ;
52                $dest = $input->getOption('dest') ;
53                               
54                // Répertoire source ou sont les PDFs
55                if(!is_dir($source))
56                        mkdir($source);
57               
58                if ($spip_loaded) {
59                        chdir($spip_racine);
60
61                        if (!function_exists('passthru')){
62                                $output->writeln("<error>Votre installation de PHP doit pouvoir exécuter des commandes externes avec la fonction passthru().</error>");
63                        }
64                        // Si c'est bon on continue
65                        else{
66                                $output->writeln("<info>C'est parti pour une petite conversion de PDF en images !</info>");
67                                       
68                                $fichiers_pdf = preg_files($source . "/", "\.pdf$");
69                               
70                                $output->writeln("<info>" . sizeof($fichiers_pdf) . " PDF(s) à convertir dans $source/</info>");
71
72                                foreach($fichiers_pdf as $f){
73                                        // Conversion imagemagick
74                                        passthru('plugins/convertisseur/scripts/pdf2img.sh ' . $f . ' ' . $dest);
75                                }
76                        }
77                }
78                else{
79                        $output->writeln('<error>Vous n’êtes pas dans une installation de SPIP. Impossible de convertir le texte.</error>');
80                }
81        }
82}
Note: See TracBrowser for help on using the repository browser.