Les paradis artificiels

26 Mar, 2009

Tallant i enganxant pdfs des de la línia de comandes

Perl — 26 Març 2009, 23:08

Accade a volte... que has d'agafar una pàgina o dues d'un pdf i fer-ne un de nou, o enganxar-les amb dues altres pàgines d'un pdf. La cosa es pot arribar a fer pesada, creieu-me, si tens uns quants arxius. Així que se t'acut: anem a fer un petit script per anar rapidets i acabar aviat la feina. Busques una mica i trobes que hi ha una PDF Concatenation and Extraction Tool escrita en perl molt útil. Llavors fas un petit script que la cridi i l'utilitzi per agafar la primera i l'última pàgina de tots els pdfs d'un directori i les enganxi una darrera l'altra, utilitzant el meravellós mòdul PDF::API2:

#! /usr/bin/perl
 
use PDF::API2;
 
$suf = "-firstlast";
 
@fs = `ls -1`;
$num = $#fs+1;
$i = 1;
$in = "";
 
print "Processing $num files:\n";
 
foreach $f (@fs) {
    chop ($f);
    print "[$i/$num] $f "; ++$i;
    $pdf = PDF::API2->open($f);
    $lastp = $pdf->pages;
    $out = $f;
    $out =~ s/\.pdf//;
    $out .= $suf . ".pdf";
    system ("pdfcat",
        "--input", "$f",
        "--pages", "1,$lastp",
        "--output", "$out");
    print "---> $out\n";
    $in .= " --input " . $out;
}
 
print "Concatenating all to `all-firstlast.pdf'\n";
 
`pdfcat $in --output all-firstlast.pdf`;
 
print "Done\n";

En fi, és molt útil. Però al final no l'he pogut fer servir pel que necessitava, així que espero que almenys a algú li estalviï una mica més de temps que a mi.


Comentaris


Afegeix un comentari






Powered by LifeType