PRINTCAP(5)

NAZWA
printcap - baza danych właściwości drukarek

SKŁADNIA
printcap

OPIS
Plik Printcap jest uproszczoną wersją bazy danych termcap(5) stosowaną do opisu drukarek wierszowych. System buforowania druku sięga do printcap za każdym razem, gdy jest używany, umożliwiając dynamiczne dodawanie i usuwanie drukarek. Każdy wpis w bazie danych stosowany jest do opisania jednej drukarki. Tej bazy danych nie można zastąpić inną, jak jest to możliwe w przypadku termcap, gdyż może ona zezwalać na ominięcie rozliczania kosztów.

Drukarkę domyślną jest zwykle lp, choć można zastosować zmienną środowiska PRINTER by to przesłonić. Każde narzędzie obsługi buforowania wydruków udostępnia opcję -P drukarka, pozwalającą na jawne nazwanie drukarki docelowej.

W można znaleźć pełne omówienie sposobu konfiguracji bazy danych dla danej drukarki.

WŁAŚCIWOŚCI
Opis formatu pliku znaleźć można w termcap(5).
Nazwa Typ Opis
af | str | NULL | nazwa pliku rozliczeniowego
br | num | none | jeśli lp jest tty, ustawia prędkość
transmisji" (funkcja ioctl(2))
cf | str | NULL | filtr danych cifplot
df | str | NULL | filtr danych tex
(format DVI)
fc | num | 0 | jeśli lp jest tty, czyści bity flag
(sgtty.h)
ff | str | ‘\f’ | łańcuch do wysłania dla wysuwu strony
fo | bool | false | drukuje wysuw strony przy otwarciu urządzenia
fs | num | 0 | jak `fc', ale ustawia bity
gf | str | NULL | filtr danych grafiki
(format plot(3))
hl | bool | false | drukuje stronę rozdzielającą jako ostatnią
ic | bool | false | sterownik obsługuje (nie standardowe) ioctl do wcięcia wydruku
if | str | NULL | nazwa wejściowego filtru tekstowego wykonującego rozliczanie
lf | str | /dev/console | nazwa pliku, w którym rejestrowane są błędy
lo | str | lock | nazwa pliku blokującego
lp | str | /dev/lp | nazwa urządzenie otwieranego jako wyjście
mx | num | 1000 | maksymalny rozmiar pliku (w blokach
BUFSIZ), zero = bez ograniczeń
nd | str | NULL | następny katalog z listą kolejek (niezaimplementowane)
nf | str | NULL | filtr danych ditroff (device independent troff)
of | str | NULL | nazwa wyjściowego programu filtrującego
pc | num | 200 | cena za stopę lub stronę w setnych centów
pl | num | 66 | długość strony (w wierszach)
pw | num | 132 | szerokość strony (w znakach)
px | num | 0 | szerokość strony w pikselach (poziomo)
py | num | 0 | długość strony w pikselach (pionowo)
rf | str | NULL | filtr dla drukowania plików tekstowych typu
FORTRAN-u
rg | str | NULL | grupa zastrzeżona. Tylko jej członkowie mają dozwolony dostęp
rm | str | NULL | nazwa maszyny dla drukarki zdalnej
rp | str | ``lp'' | argument nazwy drukarki zdalnej
rs | bool | false | ogranicza możliwych zdalnych użytkowników do posiadających konta lokalne
rw | bool | false | otwiera urządzenie druku do odczytu i zapisu
sb | bool | false | krótki nagłówek (tylko jeden wiersz)
sc | bool | false | eliminuje druk wielokrotnych kopii
sd | str | /var/spool/lpd | katalog buforowania wydruków
sf | bool | false | zaniechanie wysuwu strony
sh | bool | false | zaniechanie nagłówkowej strony rozdzielającej
st | str | status | nazwa pliku statusu
tf | str | NULL | filtr danych troff (cat fotonaświetlarki)
tr | str | NULL | łańcuch końcowy do wydruku po opróżnieniu kolejki
vf | str | NULL | filtr obrazu rastrowego

Jeżeli lokalna drukarka wierszowa obsługuje wcięcia, to demon musi wiedzieć jak to wywołać.

FILTRY
Demon lpd(8a) tworzy potok filtrów by przetworzyć pliki dla rozmaitych typów drukarek. Wybrane filtry zależą od flag przesłanych do lpr(1a). Ustawienie potoku to:

    p	pr | if zwykły tekst + pr(1)
    nic	if	zwykły tekst
    c	cf	cifplot
    d	df	DVI (tex)
    g	gf	plot(3)
    n	nf	ditroff
    f	rf	Fortran
    t	tf	troff
    v	vf	obraz rastrowy

Flitr if wywoływany jest z argumentami:

if [-c] -wszerokość -ldługość -iwcięcie -n login -h host plik-rozliczeń

Flaga -c przekazywana jest tylko wtedy, gdy przy wywołaniu lpr podano flagę -l (dosłowne wysyłanie znaków sterujących). Szerokość i długość podają szerokość i długość strony (odpowiednio z pw i pl) w znakach. Parametry -n i -h określają odpowiednio: nazwę zgłoszeniową i nazwę hosta właściciela zadania. Argument plik-rozliczeń przekazywany jest z af odpowiedniej pozycji w printcap.

Jeżeli nie podano if, to zamiast tego używane jest of, z tą różnicą, że of otwierany jest tylko raz, podczas gdy if otwierany jest dla każdego poszczególnego zadania. Zatem, if jest odpowiedniejsze do wykonywania rozliczeń. of przyjmuje tylko flagi szerokość i długość.

Wszystkie pozostałe filtry wołane są jako:

filtr -xszerokość -ydługość -n login -h host plik-rozlicz

gdzie szerokość i długość przedstawiane są w pikselach, określone odpowiednio przez pozycje px i py.

Wszystkie filtry biorą stdin za plik, stdout za drukarkę, mogą zapisywać raporty albo na stderr albo wykorzystując syslog(3), i nie mogą ignorować SIGINT.

RAPORTOWANIE
Komunikaty o błędach generowane przez same programy drukarki (to jest, programy lp*) rejestrowane są przez syslog(3) używając podsystemu LPR. Komunikaty wypisywane na stderr przez któryś z filtrów wysyłane są do odpowiedniego pliku lf. Filtry mogą, oczywiście, samodzielnie wykorzystywać syslog.

Komunikaty o błędach wysyłane na konsolę mają na końcu dołączone znaki powrotu karetki i wysuwu wiersza zamiast po prostu wysuwu wiersza (LF - nowa linia.

ZOBACZ TAKŻE
termcap(5), lpc(8a), lpd(8a), pac(8a), lpr(1a), lpq(1a), lprm(1a) 4.3 BSD Line Printer Spooler Manual.

HISTORIA
Format pliku printcap pojawił się w 4.2BSD.