題 在FLOSS的命令行中將PDF轉換為灰度?


我有一個彩色PDF文件,我打算將其打印出來然後用黑白複印。在復印之前,我想知道B&W的情況。是否可以使用免費軟件在命令行上“灰度化”PDF?我正在使用Ubuntu 9.10。


72
2018-02-04 11:16


起源




答案:


ImageMagick可以做到這一點。

convert -colorspace GRAY color.pdf gray.pdf

通過這個 電子郵件


32
2018-02-04 11:20



這大大降低了質量。 @goyinux的解決方案更好。 - Johannes Weiss
轉換實際上會柵格化pdf的內容。因此,除非pdf已經僅封裝了光柵圖像(例如掃描文檔),否則這種方法是一個很大的禁忌。 - m000
除非你使用 -density 400 -quality 100 參數 - 效果很好 - burtek
真的,有什麼ImageMagick 不能 做? :) - BalinKingOfMoria
-density 400 -quality 100 創建巨大的文件。 @ goyinux解決方案的+1。 - Stanimir Stoyanov


更好:

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

128
2017-07-17 22:33



同意,這比轉換提供了更好的結果,但有時它會旋轉pdf,這有點煩人! - tdc
剛剛意識到你可以禁用它 -dAutoRotatePages=/None - tdc
我剛剛在一個已經是灰度(來自掃描儀)的58MB PDF上運行此命令,結果輸出為10MB,看起來完全一樣。太好了! - Archie
在Windows上運行良好!只需刪除`\`並將所有內容放在同一行。 - ixe013
事實上,這個錯誤就失敗了 GPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged. - jjmerelo


這是一個小腳本,除灰度轉換外,還可以連接多個輸入文件。 要使用該腳本,請將以下行放在文件中,例如“convert2gray.sh”

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

並使其可執行

chmod +x convert2gray.sh

然後

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

將生成單個PDF“converted.pdf”,其中包含從輸入文件轉換為灰度的所有頁面。

我不得不以灰度打印出多個文件並發現這是最簡單的方法,因為你可以用一個命令打印出所有的內容。


10
2017-12-13 17:43



FWIW,pdftk也可以連接PDF。 - user1338062