Convertir fichier PDF en txt à partir d'un fichier d'initialisation - Perl - Programmation
Marsh Posté le 18-05-2016 à 17:23:08
Bizarre : ça me rappel un topic du même genre qui est passé sur ce forum y'a pas longtemps.
Tu devrais faire une recherche
Edit : je me demande si c'est pas ce topic : http://forum.hardware.fr/hfr/Progr [...] 4796_1.htm ou celui-là http://forum.hardware.fr/hfr/Progr [...] 4882_1.htm ?
Du reste, l'auteur du topic a un nom très proche du votre : multi ?
Marsh Posté le 18-05-2016 à 20:02:28
rufo a écrit : Du reste, l'auteur du topic a un nom très proche du votre : multi ? |
même date de naissance...
Tu as donné le mauvais lien, c'est pas txt->pdf mais pdf->txt ici, soit l'autre sujet: http://forum.hardware.fr/hfr/Progr [...] 4801_1.htm .
D'ailleurs je ne vois pas de question, de message d'erreur,... dans ce sujet. ->
Marsh Posté le 20-05-2016 à 09:04:41
il n'y a pas de message d'erreur.
je veux juste convertir les fichiers pdf en txt en utilisant uniquement les répertoires
Marsh Posté le 20-05-2016 à 11:25:58
Perso, j'irais
1) récupérer xpdf ici: http://www.foolabs.com/xpdf/download.html dans la version pour son OS
2) j'en utiliserais le binaire pdftotext qui convertit un pdf en texte avec une bonne qualité et une bonne rapidité, vu qu'il est écrit en C
et j'incorporerais ça dans un script perl.
A+,
Marsh Posté le 20-05-2016 à 11:29:33
Comment passé d'un code C en Perl aussi ?
Je n'est aucune notion en C
Marsh Posté le 20-05-2016 à 11:39:40
Il y a pas besoin, tu peux appeler un exécutable depuis perl:
Code :
|
A+,
Marsh Posté le 25-05-2016 à 15:03:39
J'ai modifié le code avec ceci :
open my $fout, '>', $fic_txt_out or die "Ouverture impossible de $fic_txt_out $!";
print $fout $text;
close $fout;
Et ça fonctionne pour tout le répertoire PDF1.
Maintenant il faut que je fasse la même chose avec le répertoire PDF2.
Lorsque je modifie le nom des variables il ne se passe rien et lorsque je conserve le même nom de variable il ne se passe rien non plus.
Voici le code complet que j'ai testé
Code :
|
faut-il que je réinitialise les variables ?
Marsh Posté le 25-05-2016 à 21:25:23
A priori, non.
A+,
Marsh Posté le 26-05-2016 à 08:26:15
Mais il ne me convertit que les fichiers se trouvant dans PDF et non dans PDF1
Marsh Posté le 26-05-2016 à 09:31:25
voici mon message d'erreur :
Can't call method "getPageContentTree" on an undefined value c:\pdf_txt.pl
Marsh Posté le 26-05-2016 à 10:07:21
Ce qui veut dire que tu as un appel
sub convert_pdf_to_text {
my $pdf = CAM::PDF->new(shift);
qui a échoué ce qui a mis $pdf a la valeur undef
d'ou l'échec à l'appel de my $tmp = $pdf->getPageContentTree(1);
Il faut que tu imprimes le nom de ton fichier en cas d'échec
sub convert_pdf_to_text {
my $infile = shift;
my $pdf = CAM::PDF->new($infile);
print "Echec avec le fichier $infile!\n" unless defined($pdf);
et ensuite, il faudra que tu comprennes ce qui pose problème avec ton fichier pdf.
A+,
Marsh Posté le 26-05-2016 à 10:39:11
Merci pour ton aide je viens de trouver le problème grâce à tes informations en fait j'avais 4 fichiers PDF dans le répertoire PDF1 et y en avait 1 que je ne pouvais pas ouvrir.
Et maintenant ça fonctionne.
Marsh Posté le 18-05-2016 à 15:36:34
Bonjour à tous,
Je souhaite convertir tous les fichiers PDF se trouvant dans un répertoire en fichier txt et que les fichiers txt soit placer dans un autre répertoire.
Pour se faire j'utilise un fichier d'initialisation afin de ne pas avoir les arborescences en dur dans mon code. Voici le contenu de mon fichier d'initialisation :
[repertoire]
REP_PDF=C:\PDF\
REP_TXT=C:\TXT\
Au préalable j'utilise la fonction GetFilesList qui me permettra de lister les différents fichiers PDF se dans c:\PDF\ mais aussi de lister les différents fichiers txt se trouvant dans c:\TXT\ afin de voir que la conversion a bien eu lieu.
Pour se faire j'utilise le code suivant :
J'espère que les informations que je vous transmets seront compréhensibles.
Je vous remercie d'avance pour votre aide.
Cordialement