pdfファイルを白黒のpdfに変換する方法です
pdfファイルを一度開いて,印刷を選んで,白黒印刷で pdf 出力…とマウスで操作してもモノクロのpdfは出力できます.でも,大量のpdfファイルを変換する場合などは面倒です.
pdfをモノクロpdfに変換するワンライナー
そういう場合はgsコマンドを使って自動変換すると楽です
gs -sDEVICE=pdfwrite -sProcessColorModel=DeviceGray \ -sColorConversionStrategy=Gray -dOverrideICC \ -o output.pdf -f input.pdf
変換元のpdfファイルが input.pdf です.
変換後のpdfは output.pdf として出力しています.
シェルスクリプトの作成
こんなコマンドは覚えられないのでシェルスクリプトを作りました.
#!/bin/bash if [ $# -ne 2 ]; then cat<<EOF usage: $0 input.pdf output.pdf EOF exit 1 fi input="$1" output="$2" gs \ -sDEVICE=pdfwrite \ -sProcessColorModel=DeviceGray \ -sColorConversionStrategy=Gray \ -dOverrideICC \ -o "$output" \ -f "$input"
私は pdf 関連のシェルスクリプトは pdf_hogehoge.sh という命名規則で管理しているので,今回は pdf_grayscale.sh というファイル名にしました
使い方
使い方は
$ ./pdf_grayscale.sh 元のpdfファイル名 出力のpdfファイル名
です
使い方を忘れてしまった場合も想定して,ヘルプを出すようにしています
$ ./pdf_grayscale.sh
と実行すると
usage: pdf_grayscale.sh input.pdf output.pdf
と簡易ヘルプが出ます
使い方(その3)
大量のpdfファイルを一括変換したい場合は
for x in *.pdf; do ./pdf_grayscale.sh $x output_$x ; done
などとやればOKです
これで hogehoge.pdf は output_hogehoge.pdf に自動変換されます
使い方(その3)
作成した pdf_grayscale.sh は,パスが通ったディレクトリに配置しておくと便利です.
なぜならパスが通ったディレクトリに置いてけば,あとは「pdfまでタイプしたら[TAB]で候補を出す」ということだけ覚えておけば,あとは候補の中からスクリプトを探すだけで,必要なスクリプトがすぐに見つけ出せるはずです.
ちなみに手元の環境では,pdfまでタイプして[TAB]を押すと以下のコマンドや自作スクリプトが出てきました
pdf2dsc pdfbook2 pdfimages pdfmom pdftexi2dvi pdfunite pdf2ps pdfclose pdfinfo pdfopen pdftocairo pdfxup pdf_grayscale.sh pdfcrop pdfjam pdfroff pdftohtml pdf_reduce.sh pdfcsplain pdflatex pdfseparate pdftoppm pdfannotextractor pdfdetach pdflatex-dev pdfsig pdftops pdfatfi pdfetex pdflatexpicscale pdftex pdftosrc pdfattach pdffonts pdfmex pdftex-quiet pdftotext
pdf_reduce.sh は自作のスクリプトで,pdfファイルのファイルサイズを自動で小さくするスクリプトです
https://pyopyopyo.hatenablog.com/entry/20160712/p1 これです
残りのコマンドの大半は pdfjamとかpdftkに付属しているツールです
よく使うのは以下のコマンドです
pdfunite | 複数のpdfファイルを入力として,1ファイル1ページとして連結(=unite),一つのpdfファイルとして出力します |
pdfseparate | pdfuniteの逆の処理.一つのpdfファイルを入力として,1ページごとに分割(=separate)して出力します |
pdftotext | pdfファイルから,文字(テキスト)を抜き出して,テキストファイルを出力します |
pdfimage | pdfファイルから,画像を抜き出して,画像ファイルを出力します |
pdflatex | LaTeXのファイルから pdfを作ります |
まとめ
- pdfをモノクロに変換するコマンドを紹介しました
- シェルスクリプト化しておけば,「 pdf + [TAB] 」だけ覚えておけば pdf_grayscale.sh に辿り着けます
- それさえ忘れてしまった場合は,ブログを pdf で検索しましょうpyopyopyo.hatenablog.com