Konversi PDF ke skala abu-abu pada baris perintah di FLOSS?

80

Saya memiliki file PDF berwarna, dan saya akan mencetaknya kemudian menyalinnya hitam putih. Saya ingin tahu bagaimana rasanya di B&W sebelum memfotokopi. Apakah mungkin untuk 'greyscale' PDF di baris perintah menggunakan perangkat lunak gratis? Saya menggunakan Ubuntu 9,10.

Rory
sumber

Jawaban:

35

ImageMagick dapat melakukan ini.

convert -colorspace GRAY color.pdf gray.pdf

via email ini

Iain
sumber
27
Itu secara signifikan mengurangi kualitas. Solusi @goyinux lebih baik.
Johannes Weiss
7
Konversi sebenarnya akan meraster isi pdf. Jadi kecuali pdf sudah merangkum hanya gambar raster (misalnya dokumen yang dipindai), pendekatan ini adalah tidak boleh-tidak.
m000
2
Kecuali Anda menggunakan -density 400 -quality 100parameter - yang berfungsi dengan baik
burtek
2
Sungguh, adakah yang tidak bisa dilakukan ImageMagick ? :)
BalinKingOfMoria
-density 400 -quality 100membuat file BESAR. +1 untuk solusi @ goyinux.
Stanimir Stoyanov
155

Lebih baik:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf
Eroen
sumber
1
Setuju, ini memberikan hasil yang jauh lebih baik daripada konversi, tetapi kadang-kadang memutar pdf yang sedikit mengganggu!
tdc
9
Baru sadar Anda dapat menonaktifkannya dengan-dAutoRotatePages=/None
tdc
1
Saya hanya menjalankan perintah ini pada 58MB PDF yang sudah abu-abu (berasal dari pemindai) dan output yang dihasilkan adalah 10MB dan tampak persis sama. Bagus!
Archie
1
Bekerja dengan baik di Windows juga! Hapus saja `\` dan letakkan semuanya di baris yang sama.
ixe013
1
Bahkan, ini gagal dengan kesalahan iniGPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo
13

Berikut ini adalah skrip kecil yang selain konversi grayscale dapat menggabungkan beberapa file input. Untuk menggunakan skrip, masukkan baris berikut dalam file, misalnya "convert2gray.sh"

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

dan membuatnya dapat dieksekusi

chmod +x convert2gray.sh

Kemudian

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

akan menghasilkan satu PDF "convert.pdf", yang berisi semua halaman dari file input yang dikonversi ke skala abu-abu.

Saya harus mencetak file mutliple semua dalam skala abu-abu dan menemukan ini cara termudah, karena Anda dapat mencetak semuanya setelah pemeriksaan dengan satu perintah.

ya
sumber
FWIW, pdftk juga dapat menggabungkan PDF.
user1338062