Convertire un PDF in scala di grigi nella riga di comando in FLOSS?


81

Ho un file PDF a colori, lo stamperò e poi lo fotocopierò in bianco e nero. Mi piacerebbe sapere com'è in B&W prima di fotocopiarlo. È possibile 'scala di grigi' un PDF dalla riga di comando utilizzando software libero? Sto usando Ubuntu 9.10.

Risposte:


36

ImageMagick può farlo.

convert -colorspace GRAY color.pdf gray.pdf

tramite questa email


27
Ciò riduce significativamente la qualità. La soluzione di @goyinux è migliore.
Johannes Weiss,

7
Convert effettivamente rasterizzerà i contenuti del pdf. Quindi, a meno che il pdf non incapsuli già solo immagini raster (ad esempio un documento scansionato), questo approccio è un grande no-no.
m000,

2
A meno che tu non usi i -density 400 -quality 100parametri - che funziona bene
burtek il

2
Davvero, c'è qualcosa che ImageMagick non può fare? :)
BalinKingOfMoria

-density 400 -quality 100crea file ENORMI. +1 per la soluzione di @ goyinux.
Stanimir Stoyanov,

156

Meglio:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf

1
D'accordo, questo dà risultati molto migliori rispetto alla conversione, ma a volte ruota il pdf che è un po 'fastidioso!
CTD

9
Ho appena realizzato che puoi disabilitarlo con-dAutoRotatePages=/None
tdc il

1
Ho appena eseguito questo comando su un PDF da 58 MB che era già in scala di grigi (proveniente da uno scanner) e l'output risultante era di 10 MB e sembrava esattamente lo stesso. Bello!
Archie,

1
Funziona bene anche su Windows! Rimuovi semplicemente `\` e metti tutto sulla stessa riga.
ixe013,

1
In realtà, ciò non riesce con questo erroreGPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo,

13

Ecco un piccolo script che oltre alla conversione in scala di grigi può concatenare più file di input. Per utilizzare lo script, inserire le seguenti righe in un file, ad esempio "convert2gray.sh"

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

e renderlo eseguibile

chmod +x convert2gray.sh

Poi

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

produrrà un singolo PDF "convertito.pdf", che contiene tutte le pagine dei file di input convertiti in scala di grigi.

Ho dovuto stampare più file tutti in scala di grigi e l'ho trovato nel modo più semplice, dal momento che è possibile stampare tutto dopo l'iniezione con un solo comando.


FWIW, pdftk può anche concatenare PDF.
user1338062
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.