[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-users:13815] 薬剤情報の印刷の不具合について



西宮の坂口です。 困っている方もおられるようなので参考になれば幸いです。

/var/spool/cups/ にある dxxxxx-001 ファイルは ghex で見れます。
new1.cプログラムです。 penguin はホームディレクトリです。 プログラムはすべて /home/penguin/neu/ に入れます。

//gcc new1.c -o new1 `pkg-config gtk+-3.0 --cflags --libs`
// #include <tcl8.6/tcl.h>
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>

gboolean timer_cb (gpointer data) {
         system ("tclsh /home/penguin/neu/newA5.tcl");
         g_print  ("return ok\n");
         return TRUE;
}

int
main (int argc, char **argv) {
         gtk_init (&argc, &argv);
         g_timeout_add(1100, (GSourceFunc)timer_cb, "OK");
         gtk_main ();

  return 0;
}

以下はnewA5.tcl プログラムです。

#!/usr/bin/tclsh
# A4-files -> lq1(A4) -> lp3(A4) -> lp4(A5) -> lq2(A5) -> print
    lq1, lp3, lp2, lp3, lp4 は印刷無効に設定
# A5-files -> lp2 -> lp3 -^
                     cd "/var/spool/cups"
                     exec lpmove lp2 lp3
                     exec lpmove lq1 lp3
                     set a1 [exec lpq -P lp3]
                     set a2 [split $a1 "\n"]
                     set l [llength $a2]
   if {$l > 2} {
puts $l
           for {set k 2} {$k < $l} {incr k} {
                     set a3 [lindex $a2 $k]
                     set a4 [lindex $a3 2]
                     exec lprm -Plp3 $a4
                     set a5 ""
                     append a5 "0000" $a4
                     set n [string length $a5]
                     incr n -1
                     set m [expr $n - 4]
                     set a6 "d"
                     append a6 [string range $a5 $m $n] "-001"
                     puts $a6
                     set afd [open $a6 "rb"]
                     set a7 [read -nonewline $afd]
                     close $afd
                     regsub -all {/Height 113} $a7 {/Height 000} a8
                     set bfd [open {| lpr -o fit-to-page -o media=A5 -P lp4} wb]
                     puts $bfd $a8
                     close $bfd
                     puts $a4
             }
                     exec lpmove lp4 lq2
     }
                     exit

以下はprin.shプログラムです。

#!/bin/bash
sleep 6s
echo "パスワード" | sudo -S -p "" /home/penguin/neu/new1

print.shを自動起動プログラムに bash /home/penguin/neu/print.sh で登録する。

以上です。 ここ2か月LBP5400で使用して問題なしです。