Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/03/2008, à 10:57

tuxy

générer des pdf avec ps2pdf et Perl

Bonjour à tous et à toutes ,
Je rencontre un petit soucis sur un script Perl écrit récemment, j'explique!
Des collègues souhaiteraient générer un pdf pour impression à partir de fichiers .eps générer avec gimp.
Le premier soucis c'est qu'ils voulaient que chaque document eps  subissent une rotation à 90° avant de passer en pdf (problème de mise en page).
Je dispose donc de 72 fichiers .eps et j'ai décidé d'écrire un petit script perl qui modifie chaque fichier eps puis appelle les commandes ps2pdf et pdfjoin (du paquet pdfjam) pour faire cette petite mixture.

J'arrive à mes petits problèmes:
- tout d'abord, lorsque j'ai écris le script, j'étais sous leopard (je travaille sur un macbook en dual ubuntu/leopard, et j'ai pas vraiment choisi le système pour écrire le script, juste la flemme de rebooter), et bizarrement, lorsque j'exécute le script sous osX les fichiers PDF sont générés sans soucis, et sous ubuntu, les fichiers pdf sont des pages blanches !!
- deuxième soucis (cette fois commun au 2 systèmes), une fois les fichiers générés (sous léopard vu que ubuntu ça marche pas), lorsque je tente un pdfjoin (par le script ou directement en ligne de commande), un fichier est bien généré (grosse taille: 200 Mo et des brouettes) mais impossible de l'ouvrir, le système me dis que le fichier est corrompu (je précise que j'ai aussi fait le test avec seulement 2 ou 3 fichiers joints et que le pdfjoin marche trés bien avec les fichiers non modifiés).
Donc voilà, si un développeur bien pensant (ou quelqu'un d'autre) peut me donner une piste, je lui serais reconnaissant.

Je vous poste aussi mon script:

#!/usr/bin/perl -w

use strict;

my $folder = ".";
opendir FOLDER, $folder;
my @folder_list = readdir(FOLDER);

foreach my $f (@folder_list)
{
    if ($f =~ m/.eps/ && $f ne "advanceps2pdf.pl")
    {   
        my $file_in = $f;
        my $file_out = $file_in."-rotate.eps";

        open(FILE_IN,"<$file_in");
        open(FILE_OUT,">$file_out");


        while (<FILE_IN>) {
            if ($_ =~ m/BoundingBox/) {
                my @tab = split(" ",$_);
                my $line = "\%%BoundingBox: -$tab[4] $tab[1] -$tab[2] $tab[3]\n90 rotate \n";   
                $_ = $line;
                print FILE_OUT $_;
                }
            else
            {
                print FILE_OUT $_;
            }

        }

        close FILE_IN;
        close FILE_OUT;

        system("ps2pdf ".$file_out);
    }
}

close FOLDER;

system("mkdir generated-eps && mkdir generated-PDF && mv *.eps-rotate.eps generated-eps/ && mv *.eps-rotate.pdf generated-PDF");

Merci d'avance.

Dernière modification par tuxy (Le 31/03/2008, à 10:59)


Je sais que je ne sais rien. 

- Socrate -

Hors ligne

#2 Le 31/03/2008, à 11:17

michel2652

Re : générer des pdf avec ps2pdf et Perl