En supposant que vous avez tous les outils de ligne de commande nécessaires installés, vous pouvez effectuer les opérations suivantes:
- Split et rejoindre PDF en utilisant
pdfseparate
et pdfunite
(Poppler outils).
- Extraire la densité d'origine en utilisant
pdfinfo
plus grep
/egrep
et, par exemple, sed
. Cela ne garantit pas la même taille du fichier PDF, juste le même DPI.
Mettre tous ensemble, vous pouvez avoir une série de commandes bash comme suit:
pdfseparate in.pdf temp-%d.pdf; for i in $(seq $(ls -1 temp-*.pdf | wc -l)); do mv temp-$i.pdf temp-$(printf %03d $i).pdf; done
for f in temp-*.pdf; do convert -density $(pdfinfo $f | egrep -o 'Page size:[[:space:]]*[0-9]+(\.[0-9]+)?[[:space:]]*x[[:space:]]*[0-9]+(\.[0-9]+)?' | sed -e 's/^Page size:\s*//'| sed -e 's/\s*x\s*/x/') -colorspace Gray {,bw-}$f; done
pdfunite bw-temp-*.pdf out.pdf
rm {bw-,}temp-*.pdf
Note 1: il comme solution sale (for
/wc
/seq
/printf
) pour une commande appropriée de 10-999 pages PDF (je n'ai pas compris comment mettre des zéros en début dans pdfseparate
).
Remarque 2: Je suppose qu'ImageMagick considère les fichiers PDF comme un autre fichier image binaire. Par exemple, pour les fichiers texte principalement, cela entraînera d'énormes fichiers PDF. Ainsi, il s'agit d'une très mauvaise méthode pour convertir des fichiers PDF textuels en B & W.