- 添付ファイル
- ■ lpr.r (1.9 KB)
コマンドの混同を防ぐため、シェルスクリプトのコマンドには $
を文頭に入れています。
R でサーマルプリンタを利用する
準備
ドライバのインストール
CITIZEN ドライバーダウンロード から CUPS ドライバー(対応OS:Linux/Mac OSX) → Mac OSX ドライバーインストール用ファイルをダウンロードしてインストールする。 システム環境設定より、従来のプリンタインストールと同じ要領でインストールを行う。
ターミナルで
$ lpstat -s
と実行すると、コマンドベースでプリンタを指定するための正確なプリンタ名の一覧が表示される。
システムのデフォルトの送信先: NEC_Color_MultiWriter_5800C__2C_45_3E_ CITIZEN_CT_S601のデバイス: usb://CITIZEN/CT-S601?serial=00000000 ...(後略)
この出力で得た CITIZEN_CT_S601
を lpr.r
の
# プリンタの指定 .printerName = "CITIZEN_CT_S601"
と代入する。
R から print 関数実行結果を出力する
lpr.r
を source
文などで読み込み、
printTP(lynx)
を実行すると
lynx (この部分は太字) Time Series: Start = 1821 End = 1934 Frequency = 1 [1] 269 321 585 871 1475 2821 3928 5943 [9] 4950 2577 523 98 184 279 409 2285 [17] 2685 3409 1824 409 151 45 68 213 [25] 546 1033 2129 2536 957 361 377 225 [33] 360 731 1638 2725 2871 2119 684 299 [41] 236 245 552 1623 3311 6721 4254 687 [49] 255 473 358 784 1594 1676 2251 1426 [57] 756 299 201 229 469 736 2042 2811 [65] 4431 2511 389 73 39 49 59 188 [73] 377 1292 4031 3495 587 105 153 387 [81] 758 1307 3465 6991 6313 3794 1836 345 [89] 382 808 1388 2713 3800 3091 2985 3790 [97] 674 81 80 108 229 399 1132 2432 [105] 3574 2935 1537 529 485 662 1000 1590 [113] 2657 3396
通常の print
関数同様の結果がサーマルプリンタから出力される。print
関数のラッパーなので、引数は受け渡される。
R の plot を出力する
beginTP()
を実行した後、
plot(lynx)
などすべての plot
が完了したら、
endTP()
とするとサーマルプリンタから作図が出力される。
endTP(2)
とすると2部印字される。
beginTP
関数は pdf
関数のラッパーなので width
や height
などのオプションも指定可能であるが、正方形に近い PDF サイズでないと初期オプションでは縮小される。
endTP
関数の内部で用紙サイズの指定を X80MMY80MM
の 80 mm × 80 mm に指定しており、また、fit-to-page
オプションで「用紙サイズに合わせて拡大縮小」をしている。必要であれば、用紙サイズやオプションは適宜変更されたい。
$ lpoptions -p CITIZEN_CT_S601 -l
を実行すると、
PageSize/Media Size: X52D5MMY20MM X52D5MMY30MM X52D5MMY40MM X52D5MMY50MM X52D5MMY60MM X52D5MMY70MM X52D5MMY80MM X52D5MMY90MM X52D5MMY100MM X52D5MMY110MM X52D5MMY120MM X52D5MMY130MM X52D5MMY140MM X52D5MMY150MM X52D5MMY160MM X52D5MMY170MM X52D5MMY180MM X52D5MMY190MM X52D5MMY1000MM X52D5MMY2000MM X54D5MMY20MM X54D5MMY30MM X54D5MMY40MM X54D5MMY50MM X54D5MMY60MM X54D5MMY70MM X54D5MMY80MM X54D5MMY90MM X54D5MMY100MM X54D5MMY110MM X54D5MMY120MM X54D5MMY130MM X54D5MMY140MM X54D5MMY150MM X54D5MMY160MM X54D5MMY170MM X54D5MMY180MM X54D5MMY190MM X54D5MMY1000MM X54D5MMY2000MM X72MMY20MM X72MMY30MM X72MMY40MM X72MMY50MM X72MMY60MM X72MMY70MM X72MMY80MM X72MMY90MM X72MMY100MM X72MMY110MM X72MMY120MM X72MMY130MM X72MMY140MM X72MMY150MM X72MMY160MM X72MMY170MM X72MMY180MM X72MMY190MM X72MMY1000MM X72MMY2000MM X80MMY20MM X80MMY30MM X80MMY40MM X80MMY50MM X80MMY60MM X80MMY70MM X80MMY80MM X80MMY90MM X80MMY100MM X80MMY110MM X80MMY120MM X80MMY130MM X80MMY140MM X80MMY150MM X80MMY160MM X80MMY170MM X80MMY180MM *X80MMY190MM X80MMY1000MM X80MMY2000MM Custom.WIDTHxHEIGHT PaperMedia/Paper Media: *0Normal 1Label PaperType/Paper Type: *0Receipt 1Ticket CashDrawer/Drawer Type: *0NoDrawer 1Drawer1 2Drawer2 CashDrawerPulseWidth/Drawer Pulse Width: 0DrawerPulse50 1DrawerPulse100 2DrawerPulse150 *3DrawerPulse200 4DrawerPulse250 5DrawerPulse300 6DrawerPulse350 7DrawerPulse400 8DrawerPulse450 9DrawerPulse500 CutterMode/Normal Paper (Page/Job): 0NoNo 1NoPartial 2NoFull *3PartialPartial 4PartialFull 5FullFull FeedMode/Label/BM Paper (Page/Job): *0NoNo 1NoCut 2CutCut BuzzerStart/Start Job Beeps: *0Beeps 1Beeps 2Beeps 3Beeps 4Beeps 5Beeps 6Beeps 7Beeps 8Beeps 9Beeps BuzzerEnd/End Job Beeps: *0Beeps 1Beeps 2Beeps 3Beeps 4Beeps 5Beeps 6Beeps 7Beeps 8Beeps 9Beeps
すべてのプリントオプションが表示される。
例えば、endTP
関数内部の
system(paste0("lpr -P ", .printerName, " ", .hiddenFileName, " -#", opcopy, " -o media=X80MMY80MM -o fit-to-page", collapse = ""))
の部分に
-o CutterMode=1NoPartial
を追記すれば、ページごとにカッターは作動しなくなり、連続した 1 枚の紙となる。