ちょっとまとまった量の書類を印刷する機会があって、手作業は大変だからターミナルで作業したいなと思った。 今回は、そのとき調べた内容について書いておく。 尚、操作するプリンタのドライバ等は既にインストールした状態を前提にしている。
使った環境は次の通り。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G1217
プリンタの一覧を取得する
まずは、操作するプリンタの名称を取得する必要がある。
これには lpstat
コマンドに -s
オプションをつけて実行する。
$ lpstat -s
システムのデフォルトの送信先:Canon_iP2700_series
Canon_iP2700_series のデバイス:usb://Canon/iP2700%20series?serial=XXXXXX
上記の出力で「〜のデバイス」となっている中の「〜」がプリンタの名前になっている。 例えば、上記なら「Canon_iP2700_series」がそれに当たる。
プリンタを使って印刷する
実際にプリンタを使って印刷するときは lpr
コマンドを使う。
印刷に使うプリンタは -P
オプションで指定する。
つけなければデフォルトの送信先になるかな。
$ lpr -P <プリンタ名> <ファイル名>
例えば、先ほどのプリンタを例にすると、こんな感じ。
$ lpr -P Canon_iP2700_series sample.pdf
コマンドラインで実行できれば、あとは好きに操作を自動化できる。 例えば現在の作業ディレクトリにあるファイル (pdf とか) をすべて印刷したいなら、次のようにしたり。
$ for i in $(ls); do lpr -P Canon_iP2700_series $i; done;
プリンタの設定を変更する
プリンタの設定は lpoptions
コマンドで行う。
使っているプリンタで設定できる項目の一覧を取得したいときは -l
オプションをつけて実行しよう。
対象のプリンタは -p
オプションで指定する。
$ lpoptions -p Canon_iP2700_series -l ColorModel/Color Model: *RGB16 CNIJProfileID/ProfileID: *1 2 3 4 5 6 Resolution/Output Resolution: 300x300dpi *600x600dpi PageSize/PageSize: Letter Letter.FullBleed Legal A5 *A4 A4.FullBleed B5 4x6 4x6.FullBleed 4x8 4x8.FullBleed 5x7 5x7.FullBleed 8x10 8x10.FullBleed 89x127mm 89x127mm.FullBleed Postcard Postcard.FullBleed DoublePostcard Env10 EnvDL EnvYou4 98x190mm 55x91mm 55x91mm.FullBleed 101.6x180.62mm 101.6x180.62mm.FullBleed Custom.WIDTHxHEIGHT CNIJCartridge/BJ Cartridge: 1 2 *4 CNIJMediaType/Media Type: *0 50 52 51 42 22 28 16 56 27 54 7 18 8 36 CNIJMediaSupply/Paper Source: *7 CNIJPrintQuality/Quality: 0 5 *10 15 20 CNIJDitherPattern/Halftoning: 2560 *2595 CNIJGrayScale/Grayscale Printing: *0 1 2 CNIJGamma2/Brightness: 14 *18 22 CNIJAmountOfExtension/Amount of Extension: 0 1 *2 3 CNIJMarginType/MarginType: *0 1 CNIJPaperGapCommand/PaperGapCommand: *10 CNIJDiscTrayForm/DiscTrayForm: *10 CNIJBanner/Banner: *5 CNIJDuplexPrinting/Duplex Printing: *0 CNIJSGColorMode/SGColorMode: *127 CNIJISaveMode/ISaveMode: *30 CNIJMediaGroup/MediaGroup: *99 CNIJDuplexSurface/DuplexSurface: *0 CNIJDataDirection/DataDirection: *0 CNIJSpecialMode/SpecialMode: *0 CNIJManualSelectSupply/ManualSelectSupply: *10 CNIJIntent2/Color Mode: *1 3 CNIJBlackAdjustment/BlackAdjustment: *10 CNIJEmergencyMode/EmergencyMode: *127 CNIJLongLifeMode/LongLifeMode: *30 CNIJCartridgeSelect/CartridgeSelect: *1 CNIJPrintMode2/Print Quality: 1 *2 3 5 CNIJPZVividPosiProcess/Vivid Photo: *0 2048 CNIJGrayScaleCheckBox/Grayscale Printing: *0 1 CNIJPQualitySlider/Quality: 1 2 *3 4 5 CNIJHalfToneRadio/Halftoning: 1 *2 CNIJMediaSupplyMenuItem/MediaSupplyMenuItem: *1 CNIJDuplexPrintArea/Print Area: 0 *1 CNIJProfileType/ProfileType: 0 *1 CNIJPDEEnable/PDEEnable: 0 *1 CNIJRGB2GrayConvert/RGB2GrayConvert: *0 1 CNIJAutoDuplexCheckBox/AutoDuplexCheckBox: *0 1 CNIJPreviewSampleType/Sample Type: *1 3 4 CNIJColorPatternCheckBox/View Color Pattern: *0 1 CNIJColorAdjustMode/ColorAdjustMode: *1 CNIJMediaSense/MediaSense: *10 CNIJStapleSide/Stapling Side: *1 2 3 4 CNIJExtDDIStapleMarginSupport/ExtDDIStapleMarginSupport: *1 CNIJExtDDISupportAppType/ExtDDISupportAppType: *1 CNIJTableSwitchInfo/TableSwitchInfo: *0
上記はプリンタ固有の設定項目なので、使用するプリンタの機種ごとに異なる。
モノクロ印刷の設定をしてみる
設定例として、カラーインクがもったいないのでモノクロ印刷がしたい場合を考えてみよう。 そのときは、まず関連しそうな項目を上記の出力から探す。
今回使っているプリンタでは GrayScale
という文字列の入った項目が該当しそうだ。
例えば CNIJGrayScale/Grayscale Printing
という項目には 0, 1, 2 という三つの設定値がある。
$ lpoptions -p Canon_iP2700_series -l | grep -i gray CNIJGrayScale/Grayscale Printing: *0 1 2 CNIJGrayScaleCheckBox/Grayscale Printing: *0 1 CNIJRGB2GrayConvert/RGB2GrayConvert: *0 1
アスタリスク (*) がついているのが現在の設定なので、今は 0
になっていることが分かる。
試しに、これを 1
に変更してみよう。
設定を変更するときは -o
オプションで <項目名>=<値>
という形で指定する。
$ lpoptions -p Canon_iP2700_series -o CNIJGrayScale=1
これで CNIJGrayScale/Grayscale Printing
の項目の値が 1
に変更できた。
$ lpoptions -p Canon_iP2700_series -l | grep CNIJGrayScale CNIJGrayScale/Grayscale Printing: 0 *1 2 CNIJGrayScaleCheckBox/Grayscale Printing: *0 1
あとは、この状態で印刷すればモノクロで印刷できた。
$ lpr -P Canon_iP2700_series sample.pdf
めでたしめでたし。