Convertir un PDF en niveaux de gris sur la ligne de commande dans FLOSS?

81

J'ai un fichier PDF couleur, et je vais l'imprimer puis le photocopier en noir et blanc. J'aimerais savoir à quoi ça ressemble en noir et blanc avant de le photocopier. Est-il possible de "passer au niveau gris" un PDF en ligne de commande en utilisant un logiciel libre? J'utilise Ubuntu 9.10.

Rory
la source

Réponses:

36

ImageMagick peut le faire.

convert -colorspace GRAY color.pdf gray.pdf

via cet email

Iain
la source
27
Cela réduit considérablement la qualité. La solution de @ goyinux est meilleure.
Johannes Weiss
7
Convert rasterise en réalité le contenu du pdf. Donc, à moins que le pdf n'encapsule déjà que des images matricielles (par exemple, un document numérisé), cette approche est un gros no-no.
m000
2
Sauf si vous utilisez des -density 400 -quality 100paramètres - cela fonctionne bien
burtek
2
Vraiment, y a-t-il quelque chose que ImageMagick ne peut pas faire? :)
BalinKingOfMoria
-density 400 -quality 100crée d'énormes fichiers. +1 pour la solution de @ goyinux.
Stanimir Stoyanov
156

Mieux:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf
Eroen
la source
1
D'accord, cela donne de bien meilleurs résultats que convertir, mais parfois, cela fait tourner le pdf, ce qui est un peu gênant!
tdc
9
Je viens juste de réaliser que vous pouvez désactiver cela avec-dAutoRotatePages=/None
tdc
1
Je viens d'exécuter cette commande sur un fichier PDF de 58 Mo déjà en niveaux de gris (provenant d'un scanner) et le résultat obtenu était de 10 Mo et était exactement identique. Agréable!
Archie
1
Fonctionne bien aussi sur Windows! Supprimez simplement le "\" et mettez tout sur la même ligne.
ixe013
1
En fait, cela échoue avec cette erreurGPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo
13

Voici un petit script qui, en plus de la conversion en niveaux de gris, peut concaténer plusieurs fichiers d'entrée. Pour utiliser le script, placez les lignes suivantes dans un fichier, par exemple "convert2gray.sh"

#!/bin/bash
gs -sOutputFile=converted.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibiltyLevel=1.4 -dNOPAUSE -dBATCH $@

et le rendre exécutable

chmod +x convert2gray.sh

ensuite

./convert2gray.sh input1.pdf input2.pdf … lastinput.pdf

produira un seul fichier PDF "converti.pdf", qui contient toutes les pages des fichiers d’entrée convertis en niveaux de gris.

J'ai dû imprimer plusieurs fichiers en niveaux de gris et j'ai trouvé le moyen le plus simple, car vous pouvez tout imprimer après une inspection en une seule commande.

ysis
la source
FWIW, pdftk peut également concaténer des PDF.
user1338062