J'essaie de fusionner de nombreux fichiers PDF par tranches d'environ 3 000 fichiers. Après de nombreux essais, ce script semblait faire l'affaire. (bien sûr, je me suis trompé)
#!/bin/bash
basepath='/home/lemonidas/pdfstuff';
datename=`date "+%Y%m%d%H%M.%S"`;
start=`date "+%s"`;
echo "parsing pdf list to file..."
find $basepath/input/ -name "*.pdf" | xargs -I {} ls {} >> $basepath/tmp/biglist$datename.txt
split -l 3000 $basepath/tmp/biglist$datename.txt $basepath/tmp/splitfile
rm $basepath/tmp/biglist$datename.txt
echo "deleting big file..."
echo "done splitting!"
declare -i x
x=1
for f in $basepath/tmp/splitfile*
do
linenum=`cat $f | wc -l`;
echo "Processing $f ($linenum lines)..."
# merge to one big PDF
cat $f | xargs gs -q -sstdout=$basepath/error.log -sPAPERSIZE=letter -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$basepath/output/$x.big.pdf 2>$basepath/error.log
echo "Completed PDF $x"
(( x++ ))
# delete the list file
rm $f
echo "Deleted processed file $f"
done
end=`date "+%s"`;
echo "Started: $start"
echo "Finished: $end"
Le problème est que j'ai 22000 PDF de 2 pages, chaque fichier de sortie (sauf le dernier) devrait compter 6000 pages (puisque nous avons 3000 PDF dans chaque liste de fusion, comme vérifié par "wc -l" avant l'analyse), et je n'obtiens que 658 pages environ.
Aucune erreur n'est signalée, sauf celle-ci par gs :
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
Warning: Embedded symbolic TT fonts must contain a cmap for Platform=1 Encoding=0.
This file had errors that were repaired or ignored.
The file was produced by: >>>> Powered By Crystal
Please notify the author of the software that produced this file that it does not conform to Adobe's published PDF specification.
encore et encore (mais pas 22000 fois quand même)
Lorsque je l'essaie avec 300-400 fichiers, il fonctionne sans problème, mais lorsque j'essaie l'exécution complète, après 2,5 heures, j'obtiens beaucoup moins que la moitié des fichiers fusionnés.
J'ai ensuite pensé à convertir chaque PDF de deux pages en fichiers .pgm, mais je n'ai aucune idée de la manière de les refaire en PDF (afin d'éviter tout problème d'intégration des polices). Est-ce que quelque chose m'échappe ? (probablement)