Nowe posty

Autor Wątek: zmiana lprng na cups  (Przeczytany 3210 razy)

visioner76

  • Gość
zmiana lprng na cups
« dnia: 2014-02-14, 14:50:57 »
Witam,
mam problem z przejsciem na cups'a, a mianowicie, mamy system który tworzy pliki do wydruku z kodami sterującymi, nie bardzo wiem jakie to kody.
poniżej wycinek przykładowego pliku:

#SA#
#FE#    
NAZWA KLIENYA
#FE#
#ORG#
NAGLOWEK
#SE#
KONTEKST

jak drukuje przy użyciu lprng to drukuje poprawnie, natomiast przy użyciu cupsa, kody sterujące traktuje jak zwykły tekst.
nie bardzo wiem jak to ugryźć.
z góry dzięki za pomoc

płona

  • Gość
zmiana lprng na cups
« Odpowiedź #1 dnia: 2014-02-14, 18:23:28 »
Przejrzyj plik:
/etc/printcap
Jest to plik z definicjami (opisami) drukarek zainstalowanych w systemie. Powinno być tam pole (w opisie drukarki, na którą idzie wydruk z tego systemu; pola oddzielane są dwukropkiem) o wartości if=jakiś_program. if jak input filter, jakiś_program (może być to np. skrypt shell-a) to program, który odpowiednio reaguje ta te kody sterujące. Jeśli jest tak, jak myślę, to napisz coś więcej o tym programie (input filter), spróbuję pokazać jak to zaimplementować w cupsach.
Nie wiem, czy potrzebujesz się aż tak bardzo męczyć - przecież możesz mieć dwa systemy wydruków cups i lprng razem. Różnica jest tylko w wywołaniach wydruku, dla cups będzie to lp -d nazwa_kolejki nazwa_pliku, dla lprng lpr -P nazwa_kolejki nazwa_pliku + opcje oczywiście.
PS. Co to za sytem. Wydaje mi się,że takie 'kody sterujące' już gdzieś widziałem.

visioner76

  • Gość
zmiana lprng na cups
« Odpowiedź #2 dnia: 2014-02-15, 22:20:10 »
printcap wyglada jak ponizej, co do samego programu to nie jest znany, pisany byl dla naszej firmy.

lpsz_ksieg:\\
        :cm=lpdfilter drv=upp method=auto color=yes:\\
        :lp=/dev/null:\\
        :sd=/var/spool/lpd/lpsz_ksieg\\
        :lf=/var/spool/lpd/lpsz_ksieg/log:\\
        :af=/var/spool/lpd/lpsz_ksieg/acct:\\
        :if=/var/spool/lpd/lpsz_ksieg/smbprint:\\
        :la@:\\
        :tr=:cl:lk:sh:

płona

  • Gość
zmiana lprng na cups
« Odpowiedź #3 dnia: 2014-02-15, 23:21:13 »
Prześlij proszę zawartość plików:
/var/spool/lpd/lpsz_ksieg/smbprint
/var/spool/lpd/lpsz_ksieg/acct

Ten pierwszy to input filter (czyli ten, co robi wydruk), ten drugi to ostatni argument przekazywany do filtra wejściowego, też może mieć znaczenie, ale prawdopodobnie jest tam tylko przekierowanie do kolejki (drukarki) docelowej.

Jeszcze nie napisałeś dlaczego nie możesz mieć dwóch systemów druku (lprng i cups) jednocześnie. Napisz może, co to za dystrybucja linuksa. Najczęściej przy instalacji dwóch systemów wydruku tworzone są pliki, np.:
/usr/bin/lpr
/usr/bin/lpr-lpd lub /usr/bin/lpr-lprng
/usr/bin/lpr-cups

U mnie /usr/bin/lpr (a więc domyślne wywołanie drukowania pliku) jest linkiem symbolicznym do /etc/alternatives/lpr, który z kolei jest linkiem do /usr/bin/lpr-cups

Jeśli napiszę w linii poleceń lpr -P nazwa_drukarki nazwa_pliku (najprawdopodobniej Twój program tak właśnie robi), to zostanie uruchomiony cups. Jeśli zmienię link /etc/alternatives/lpr z /usr/bin/lpr-cups na /usr/bin/lpr-lpd (mam zainstalowane cups i lpr, nie lprng, ale nie powinno być większych różnic), to po wywołaniu polecenia jw zostanie uruchomiony lpd.

Myślę, że instalacja dwóch systemów druku i zmiana domyślnych wywołań drukowania będzie w Twoim wypadku prostszym rozwiązaniem problemu.

visioner76

  • Gość
zmiana lprng na cups
« Odpowiedź #4 dnia: 2014-02-17, 09:12:38 »
Witam,

plik acct ma wielkośc 0
natomiast smbprint:

#!/bin/sh
logfile=/var/spool/lpd/lpsz_ksieg/log
spool_dir=/var/spool/lpd/lpsz_ksieg
config_file=/var/spool/lpd/lpsz_ksieg/.config
eval `cat $config_file`
echo "server $server, service $service" >> $logfile
(
        echo translate
        echo "print -"
        echo ""
        cat
) | /usr/bin/smbclient "\\\\\\\\$server\\\\$service" $password -U $username

Chciałem przejść na CUPS bo z lprng mam czesto problemy (wiesza mi sie usługa i dopiero restart usługi pomaga)
Dwa systemy druku nie wiele pomogą, bo i tak puki co musze przy wydrukach faktur korzystać z lprng.