UniteThePages

Besoin de réunir des PDFs en un seul, pas vraiment compliqué avec pdfunite. Excellent. Dans mon cas, besoin un peu plus sophistiqué car besoin d’introduire des signets afin d’avoir un document plus agréable à consulter, d’où ce script.

Script en perl mais dépendances pour manipuler les fichiers PDF, à savoir pdfinfo, pdfunite (brew install Doppler sur Mac et apt install poppler-utils sur linux) et enfin ghostscript. Pas besoin de modules perl spécifiques.

#/usr/bin/perl
open(STRU,'>','merger.txt');
$cursor = 1;
foreach $af (@ARGV) {
if(-e $af) {
$ninfo = pdfinfo "$af";
my %inf;
foreach $lee (split(/\n/g,$ninfo)) {
if($lee =~ /^(.?)\:[\s\t]+(\w.)/) {
$inf{$1} = $2;
}
}
$tito = $inf{'Title'};
$tito = $af unless($tito);
if($inf{'Pages'} =~ /\d+/) {
print STRU "[/Page $cursor /Title ($tito) /OUT pdfmark\n";
$cursor += $inf{'Pages'};
}
}
}
close(STRU);
$units = join(' ',map { "\"$_\"" } @ARGV);
pdfunite $units merger.pdf;
print gs -sDEVICE=pdfwrite -q -dBATCH -dNOPAUSE -sOutputFile=Merged.pdf -dPDFSETTINGS=/prepress merger.txt -f merger.pdf;

unlink('merger.txt');
unlink('merger.pdf');

Simple et efficace. Peace.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

− 8 = 2
Powered by MathCaptcha