Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
732 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

convertir des fichiers lst en pdf

n°2277583
solerian
Posté le 14-03-2016 à 11:43:58  profilanswer
 

Reprise du message précédent :
C'est toujours .lst j'ai fait une faute de frappe

mood
Publicité
Posté le 14-03-2016 à 11:43:58  profilanswer
 

n°2277585
gilou
Modérateur
Modzilla
Posté le 14-03-2016 à 12:02:22  profilanswer
 

Ben le programme de Rat de Combat donné plus haut, qui utilise App::a2pdf, je vois pas en quoi il ne te convient pas.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2277586
solerian
Posté le 14-03-2016 à 12:07:49  profilanswer
 

Je ne comprends les options à quoi ça sert :  

Code :
  1. my %options = (
  2. header        => 1,          # Include header on all pages
  3.   footer        => 1,          # Include footer on all pages
  4.   line_numbers  => 1,          # Print line numbers
  5.   page_width    => 595,        # A4
  6.   page_height   => 842,        # A4
  7.   left_margin   => 48,         # 0.75"
  8.   right_margin  => 48,         # 0.75"
  9.   top_margin    => 60,         #
  10.   bottom_margin => 60,         #
  11.   font_face     => 'Courier',  # Monospaged text
  12.   font_size     => 9,          # Text size = 9 points
  13.   perl_syntax   => 1,          # Perform Perl syntax highlighting
  14.   icon_scale    => 0.5,        # Icon scaling (%age)
  15. );

n°2277587
rat de com​bat
attention rongeur méchant!
Posté le 14-03-2016 à 12:39:28  profilanswer
 

C'est pourtant assez explicite (à condition de maîtriser un minimum la langue de Shakespeare) et puis il y a une doc aussi. :o  
Sinon tu peux toujours les modifier et voir ce que ça change...

n°2277591
gilou
Modérateur
Modzilla
Posté le 14-03-2016 à 14:15:41  profilanswer
 

C'est pourtant pas compliqué:
Flag pour savoir si on veut des en-tête de page, des pieds de page, des numéros de ligne, suivi des dimensions de la page et des marges, la fonte et sa taille...
Et en testant 2 mn en changeant les valeurs, vous auriez tout de suite vu sur le pdf généré à quoi ça servait.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2277594
solerian
Posté le 14-03-2016 à 15:17:24  profilanswer
 

Code :
  1. use strict;
  2. use warnings;
  3. use Config::IniFiles;
  4. use PDF::API2;
  5. my @repertoire; ## repertoire prod ##
  6. my @fichier;  ## test.lst ##
  7. my $cfg = Config::IniFiles->new( -file => $ARGV[0] );
  8. foreach ('REP_PROD') {
  9.   push @repertoire, $cfg->val('repertoire', $_);
  10.   }
  11. foreach ('Fic_1','FIC_2') {
  12.   push @fichier, $cfg->val('fichier', $_) if $cfg->val('fichier', $_);;
  13.    }
  14.  
  15. my $file="c:\\test.lst";
  16. (my $file_out=$file)=~s/\.lst$/.pdf/;
  17. my %options = (
  18.   header        => 1,          # Include header on all pages
  19.   footer        => 1,          # Include footer on all pages
  20.   line_numbers  => 1,          # Print line numbers
  21.   page_width    => 595,        # A4
  22.   page_height   => 842,        # A4
  23.   left_margin   => 48,         # 0.75"
  24.   right_margin  => 48,         # 0.75"
  25.   top_margin    => 60,         #
  26.   bottom_margin => 60,         #
  27.   font_face     => 'Courier',  # Monospaged text
  28.   font_size     => 9,          # Text size = 9 points
  29.   perl_syntax   => 1,          # Perform Perl syntax highlighting
  30.   icon_scale    => 0.5,        # Icon scaling (%age)
  31. );
  32. $options{title}=$file;
  33. my $pdf=PDF::API2->new(%options);
  34. open(IN, '>', $file);
  35. foreach my $line (<IN> ){
  36.     $pdf->print($line);
  37.     }
  38.    close(IN);
  39.    
  40.    open(OUT, '>', $file_out);
  41.    binmode OUT;
  42.    print OUT $pdf->{pdf}->stringify; 
  43. close(OUT);


Voici mon mesage d'erreur :
Name "main::IN" used only once: possible typo at convertir_lst_pdf.pl line 42.
Name "main::OUT" used only once: possible typo at convertir_lst_pdf.pl line 50.

n°2277596
solerian
Posté le 14-03-2016 à 16:48:28  profilanswer
 

J'utilise une fois encore un fichier d'initialisation dont voici le contenu :
[repertoire]
REP_PROD=C:/Users/baranowp/Documents/2016_03_07_11/prod
 
[fichier]
FIC_1=C:\Users\baranowp\Documents\2016_03_07_11\prod\test.lst
Fic_2=C:\Users\baranowp\Documents\2016_03_07_11\prod\test1.lst
 
Voici le code que j'utilise :

Code :
  1. use strict;
  2. use warnings;
  3. use Config::IniFiles;
  4. use PDF::API2;
  5. my @repertoire; ## repertoire prod ##
  6. my @fichier;  ## test.lst test1.lst ##
  7. my $cfg = Config::IniFiles->new( -file => $ARGV[0] );
  8. foreach ('REP_PROD') {
  9.   push @repertoire, $cfg->val('repertoire', $_);
  10.   }
  11. foreach ('Fic_1','FIC_2') {
  12.   push @fichier, $cfg->val('fichier', $_) if $cfg->val('fichier', $_);;
  13.    }
  14.  
  15. my $file=$fichier[0];;
  16. (my $file_out=$file)=~s/\.lst$/.pdf/;
  17. my %options = (
  18.   header        => 1,          # Include header on all pages
  19.   footer        => 1,          # Include footer on all pages
  20.   line_numbers  => 1,          # Print line numbers
  21.   page_width    => 595,        # A4
  22.   page_height   => 842,        # A4
  23.   left_margin   => 48,         # 0.75"
  24.   right_margin  => 48,         # 0.75"
  25.   top_margin    => 60,         #
  26.   bottom_margin => 60,         #
  27.   font_face     => 'Courier',  # Monospaged text
  28.   font_size     => 9,          # Text size = 9 points
  29.   perl_syntax   => 1,          # Perform Perl syntax highlighting
  30.   icon_scale    => 0.5,        # Icon scaling (%age)
  31. );
  32. $options{title}=$file;
  33. my $pdf=PDF::API2->new(%options);
  34. open(IN, '<', $file);
  35. foreach my $line (<IN> )
  36. {
  37.     $pdf->print($line);
  38.     }
  39.    close(IN);
  40.    
  41.    open(OUT, '>', $file_out);
  42.    print OUT $pdf->{pdf}->stringify;
  43.    close(OUT);


 
Voici mes messages d'erreurs:  
 
- Use of uninitialized value $file_out in substitution (s///) at C:\users\baranowp\documents\2016_03_07_11\prod\convertir_lst_pdf.pl line 18.
- Use of uninitialized value $file in open at C:\users\baranowp\documents\2016_03_07_11\prod\convertir_lst_pdf.pl line 41.
- readline() on closed filehandle IN at C:\users\baranowp\documents\2016_03_07_11\prod\convertir_lst_pdf.pl line 42.
- Use of uninitialized value $file_out in open at C:\users\baranowp\documents\2016_03_07_11\prod\convertir_lst_pdf.pl line 48.
- Can't locate object method "stringify" via package "PDF::API2::Basic:DF::File" at C:\users\baranowp\documents\2016_03_07_1\prod\convertir_lst_pdf.pl line 49.
 
Je ne comprend pas mes erreurs que mon interpréteur me renvoie, pouvez-vous m'aider s'il vous plaît  
Je vous en remercie par avance.
 
Cordialement

n°2277599
gilou
Modérateur
Modzilla
Posté le 14-03-2016 à 19:22:31  profilanswer
 

Chez moi ceci marche:
 

Code :
  1. use strict;
  2. use warnings;
  3. use autodie;
  4. use App::a2pdf;
  5.  
  6. sub file2pdf {
  7.  my $input_file = shift;
  8.  my $output_file = $input_file =~ s/\.[^.]+/.pdf/r;
  9.  
  10.  open my $fin, '<', $input_file;
  11.  open my $fout, '>', $output_file;
  12.  
  13.  my %options = (
  14.  header        => 0,          # Include header on all pages
  15.  footer        => 0,          # Include footer on all pages
  16.  line_numbers  => 0,          # Print line numbers
  17.  page_width    => 595,        # A4
  18.  page_height   => 842,        # A4
  19.  left_margin   => 48,         # 0.75"
  20.  right_margin  => 48,         # 0.75"
  21.  top_margin    => 60,         #
  22.  bottom_margin => 60,         #
  23.  font_face     => 'Courier',  # Monospaged text
  24.  font_size     => 9,          # Text size = 9 points
  25.  perl_syntax   => 0,          # Perform Perl syntax highlighting
  26.  icon_scale    => 0.5,        # Icon scaling (%age
  27.  );
  28.  my $pdf  = App::a2pdf->new(%options);
  29.  
  30.  select $fout;
  31.  binmode $fout;
  32.  
  33.  while (my $line = <$fin> ) {
  34.    $pdf->print($line);
  35.  }
  36.  $pdf->output;
  37.  
  38.  select STDOUT;
  39.  
  40.  close $fin;
  41.  close $fout;
  42. }
  43.  
  44. foreach ("test.txt", "test1.txt" ) {
  45.  file2pdf($_);
  46. }


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2277651
solerian
Posté le 15-03-2016 à 11:04:56  profilanswer
 

J'ai toujours un message d'erreur mais je ne vois pas ce qu'il veut à travers ce message :
Can't locate object method "print" via package "PDF::API2" at C:\users\baranowp\documents\2016_03_07_11\prod\convertir_l
st_pdf.pl line 47, <$_[...]> line 1.
 
Pourtant j'ai bien déclaré le module voici mon code :

Code :
  1. use strict;
  2. use warnings;
  3. use Config::IniFiles;
  4. use PDF::API2;
  5. use autodie;
  6. my @repertoire; ## repertoire prod ##
  7. my @fichier;  ## test.lst test1.lst ##
  8. my $cfg = Config::IniFiles->new( -file => $ARGV[0] );
  9. foreach ('REP_PROD') {
  10.   push @repertoire, $cfg->val('repertoire', $_);
  11.   }
  12. foreach ('FIC_1','FIC_2') {
  13.   push @fichier, $cfg->val('fichier', $_) if $cfg->val('fichier', $_);;
  14.    }
  15.  
  16. sub fileAPI2 {
  17. my $input_file = $fichier[0];
  18. my $output_file = $fichier[0] =~ s/\.[^.]+/.pdf/r;
  19.   open my $fin, '<', $input_file;
  20.   open my $fout, '>', $output_file;
  21.    
  22.   my %options = (
  23.   header        => 0,          # Include header on all pages
  24.   footer        => 0,          # Include footer on all pages
  25.   line_numbers  => 0,          # Print line numbers
  26.   page_width    => 595,        # A4
  27.   page_height   => 842,        # A4
  28.   left_margin   => 48,         # 0.75"
  29.   right_margin  => 48,         # 0.75"
  30.   top_margin    => 60,         #
  31.   bottom_margin => 60,         #
  32.   font_face     => 'Courier',  # Monospaged text
  33.   font_size     => 9,          # Text size = 9 points
  34.   perl_syntax   => 0,          # Perform Perl syntax highlighting
  35.   icon_scale    => 0.5,        # Icon scaling (%age
  36.   );
  37.   my $pdf  = PDF::API2->new(%options);
  38.  
  39.   select $fout;
  40.   binmode $fout;
  41.  
  42.  
  43. while (my $line = <$fin> ) {
  44.     $pdf->print($line);
  45. }
  46.   $pdf->output;
  47.   select STDOUT;
  48.  
  49.   close $fin;
  50.   close $fout;
  51.  
  52. }
  53. foreach ($fichier[0]) {
  54.   fileAPI2($_);
  55. }

n°2277654
rat de com​bat
attention rongeur méchant!
Posté le 15-03-2016 à 11:26:35  profilanswer
 

Tu utilises le mauvais module...
use PDF::API2;
vs.
use App::a2pdf;

mood
Publicité
Posté le 15-03-2016 à 11:26:35  profilanswer
 

n°2277659
solerian
Posté le 15-03-2016 à 12:06:59  profilanswer
 

J'utilise PDF::API2 car lorsque je souhaite installer App::a2pdf il ne veut pas.
Le message est le suivant :
Test Summary Report
-------------------
t/compile.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=2, Tests=4,  2 wallclock secs ( 0.05 usr +  0.03 sys =  0.08 CPU)
Result: FAIL
Failed 1/2 test programs. 1/4 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'
  JONALLEN/a2pdf-1.13.tar.gz
  C:\STRAWB~1\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports JONALLEN/a2pdf-1.13.tar.gz
Stopping: 'install' failed for 'App::a2pdf'.

n°2277662
solerian
Posté le 15-03-2016 à 12:10:26  profilanswer
 

Voila ce qu'il me renvoie lorsquej'utilise App::A2PDF :
Can't locate App/a2pdf.pm in @INC (you may need to install the App::a2pdf module) (@INC contains: C:/Strawberry/perl/sit
e/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib .) at C:\users\baranowp\documents\2016_03_07_11\prod\converti
r_lst_pdf.pl line 7.
BEGIN failed--compilation aborted at C:\users\baranowp\documents\2016_03_07_11\prod\convertir_lst_pdf.pl line 7.

n°2277691
gilou
Modérateur
Modzilla
Posté le 15-03-2016 à 16:27:06  profilanswer
 

> lorsque je souhaite installer App::a2pdf il ne veut pas.
 
Au vu du message, vous avez peut être plusieurs installations de Perl qui se mélangent les pinceaux.
Et il y a une raison impérative à ce que vous utilisiez Strawberry Perl?
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2277702
solerian
Posté le 15-03-2016 à 17:03:50  profilanswer
 

Pour pouvoir utiliser davantage de module et de mettre à jour ma version de Perl

n°2277719
gilou
Modérateur
Modzilla
Posté le 15-03-2016 à 18:54:24  profilanswer
 

> Pour pouvoir utiliser davantage de module
Plus de 15 000 modules dispos avec la community edition d'active state, et au moins tu n'aurais pas le pb d'installation de App::a2pdf
 
> et de mettre à jour ma version de Perl  
Si ça t'amuse...
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2277754
solerian
Posté le 16-03-2016 à 09:44:56  profilanswer
 

Lorsque j'essaie avec print $pdf->stringify();  
 
Il me renvoi ceci :
Can't call method "stringify" on an undefined value at C:\users\baranowp\Documents\2016_03_07_11\prod\convertir_lst_pdf.
pl line 47, <$fin> line 1.
 
Sachant que j'utilise le module CAM:DF
 

Code :
  1. use strict;
  2. use warnings;
  3. use Config::IniFiles;
  4. use CAM::PDF;
  5. my @repertoire; ## repertoire prod ##
  6. my @fichier;  ## test.lst test1.lst ##
  7. my $cfg = Config::IniFiles->new( -file => $ARGV[0] );
  8. foreach ('REP_PROD') {
  9.   push @repertoire, $cfg->val('repertoire', $_);
  10.   }
  11. foreach ('FIC_1') {
  12.   push @fichier, $cfg->val('fichier', $_);
  13.    }
  14. sub file2pdf {
  15. my $input_file = $fichier[0];
  16. my $output_file = $fichier[0] =~ s/\.[^.]+/.pdf/r;
  17.   open my $fin, '<', $input_file;
  18.   open my $fout, '>', $output_file;
  19.   my %options = (
  20.   header        => 0,          # Include header on all pages
  21.   footer        => 0,          # Include footer on all pages
  22.   line_numbers  => 0,          # Print line numbers
  23.   page_width    => 595,        # A4
  24.   page_height   => 842,        # A4
  25.   left_margin   => 48,         # 0.75"
  26.   right_margin  => 48,         # 0.75"
  27.   top_margin    => 60,         #
  28.   bottom_margin => 60,         #
  29.   font_face     => 'Courier',  # Monospaged text
  30.   font_size     => 9,          # Text size = 9 points
  31.   perl_syntax   => 0,          # Perform Perl syntax highlighting
  32.   icon_scale    => 0.5,        # Icon scaling (%age
  33.   );
  34.   my $pdf  = CAM::PDF->new(%options);
  35.   select $fout;
  36.   binmode $fout;
  37. while (my $line = <$fin> ) {
  38.     print $pdf->stringify($line);
  39. }
  40.   $pdf->output;
  41.   select STDOUT;
  42.   close $fin;
  43.   close $fout;
  44. }
  45. foreach ($fichier[0]) {
  46.   file2pdf($_);
  47. }


Cordialement

n°2277761
gilou
Modérateur
Modzilla
Posté le 16-03-2016 à 11:22:59  profilanswer
 

Ben oui, que voulez vous, la programmation vaudou ça marche pas, et changer un module par un autre, sans vérifier s'ils ont la même interface (ce n'est pas le cas, une simple lecture des docs des modules vous aurait montré que votre appel à new est faux pour ce nouveau module), en priant Ogun ferraille, ça n'a jamais été une technique de programmation efficace.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
fusion des fichiers en 1 fichierCopie de fichiers vers dossiers en fonction du nom de fichier
comparaison de 2 fichierspasser les noms de fichiers contenant une ou plusieurs espace(s) ?
[Aide] convertir balise <iframe> en <object>Attributs de fichiers en bianire
Convertir plusieurs fichiers en UTF8?Traitement par lot, convertir les fichiers avec la mêm extention
Comment convertir 200 fichiers .dot en .doc ...Macro VBA pour convertir les fonts de 350 fichiers ....
Plus de sujets relatifs à : convertir des fichiers lst en pdf


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR