# Možnosti &CUPS;, které momentálně nejsou dostupné pomocí &kcontrol;

Tato kapitola poskytuje pár rád o dalších možnostech nastavení, které nejsou dostupné přes &GUI; &kdeprint; pro &CUPS;.

## Přehled poskytovaných funkcí

Většina často používaných funkcí &CUPS; je podporovaná v &kdeprint;.

- Správa tiskáren je podporována: přidání, odstranění, změna, nastavení, test, povolení, zakázání, ...

- Správa úloh je podporována: zrušení, pozdržení, uvolnění, přesun na jinou tiskárnu

- Tiskové možnosti: plná kontrola poskytovaná &CUPS;.

## Kde hledat pomoc při použití &CUPS;

Hodně informací o vnitřním fungovaní &CUPS; je dostupné pomocí webového rozhraní, které &CUPS; vždy podporuje. Funguje s každým prohlížečem (i textovým). Jednoduše přejděte na http://localhost:631. Pokud jste nový uživatelé &CUPS; najdete tam odkaz na lokálně dostupnou dokumentaci &CUPS; v HTML a PDF.

&CUPS; je dostupný i jiným způsobem než přes &kdeprint;: příkazový řádek a prohlížeč jsou dvě základní rozhraní &CUPS;. Hodně nástrojů pro příkazový řádek umožňuje úplné ovládání &CUPS;. Webové rozhraní je pouze podmnožina dostupných možností nastavení a ovládání.

To platí i pro &kdeprint;. Všeobecně platí, že jak se &CUPS; vyvíjí, většina nových funkcí je nejprve dostupná pomocí příkazového řádku. Určitě si hned po instalaci přečtěte manuálové stránky pro &CUPS;, aby jste měli nejnovější informace.

V závislosti na metodě aktualizace pro &CUPS; možná není váš aktivní konfigurační soubor nahrazen novým a proto váš nový démon &CUPS; neví, že má používat nové funkce.

Úplný seznam dostupných souborů a manuálových stránek je vždy v &CUPS; Software Administrator Manual (http://localhost:631/sam.html#FILES. V okně &konqueror; zadejte &URL; `man:/lpadmin` a `man:/cupsd.conf` pro zjištění nejdůležitějších příkazů a konfiguračních souborů. Přečtěte si klasické &UNIX; manuálové stránky, které lze pohodlně zobrazit v okně &konqueror; . Najdete v nich zajímavé rady a odkazy na jiné manuálové stránky a dokumentaci.

### Jak najít manuálové stránky související s &CUPS;

Zde je způsob, jak zjistit, které manuálové stránky o &CUPS; máte nainstalované:

    kurt@transmeta:~
    > apropos cups

    cups-calibrate (8)- ESP Printer Calibration Tool
    lpstat (1)        - print cups status information
    cups-lpd (8)      - receive print jobs + report printer status to lpd clients
    classes.conf (5)  - class configuration file for cups
    backend (1)       - cups backend transmission interfaces
    filter (1)        - cups file conversion filter interfaces
    cups-polld (8)    - cups printer polling daemon
    mime.types (5)    - mime type description file for cups
    cupsd (8)         - common unix printing system daemon
    lpadmin (8)       - configure cups printers and classes
    cupsd.conf (5)    - server configuration file for cups
    mime.convs (5)    - mime type conversion file for cups
    printers.conf (5) - printer configuration file for cups
    mime.convs (5)    - mime type conversion file for cups
    cups-polld (8)    - cups printer polling daemon
    lpstat (1)        - print cups status information
    backend (1)       - cups backend transmission interfaces
    mime.types (5)    - mime type description file for cups
    cupsd (8)         - common unix printing system daemon
    lpadmin (8)       - configure cups printers and classes
    printers.conf (5) - printer configuration file for cups
    cupsd.conf (5)    - server configuration file for cups
    filter (1)        - cups file conversion filter interfaces

## Mimo &kdeprint;: Rady & triky s &CUPS; na příkazovém řádku

Pár příkladů možností, které jsou momentálně podporované pouze při použití příkazového řádku.

### Povolení a zakázaní přístupu k tiskárně pro některé uživatele

Při instalaci (nebo změně) tiskárny pomocí příkazového řádku můžete povolit nebo zakázat použití tiskárny pro některé uživatele:

    lpadmin -pHeidelbergDigimaster9110 -v lpd:/10.160.16.99/mqueue -u allow:kurt,sylvi,hansjoerg -E -P /home/kurt/PPDs/DVHV.ppd

umožní použití této tiskárny (věřte mi: velmi šikovná a velmi profesionální) pouze třem uvedeným uživatelům a zároveň zakázat její použití všem ostatním. Pokud jiný uživatel chce tisknout pomocí serveru &CUPS;, dostane chybovou zprávu ve smyslu client-error-not-possible.

    lpadmin -p HeidelbergDigimaster9110 -v lpd:/10.160.16.99/mqueue -u deny:tackat,boss,waba -E -P /home/kurt/PPDs/DVHV.ppd

zakáže použití této tiskárny pouze třem uvedeným uživatelům a zároveň povolí jej použití všem ostatním. Pokud chce zakázaný uživatel tisknout pomocí serveru &CUPS;, dostane chybovou zprávu v smyslu client-error-not-possible.

Momentálně je povolené použít pouze jednu z těchto možností a neexistuje podobná podpora založená na skupinách. Její implementace se plánuje.

### Zapnutí kvót pro některé tiskárny

Někdy potřebujete pro některé tiskárny zavést kvóty. S nimi můžete určit horní hranici stránek nebo dat, které je možné v dané době vytisknout na dané tiskárně.

Kvóty je možné nastavit pomocí možnosti `-o` při instalaci tiskárny příkazem `lpadmin` nebo potom stejně již pro existující tiskárnu. Toto je částečný návod (který momentálně chybí v oficiální dokumentaci &CUPS;):

- S &CUPS; můžete mít kvóty pro jednotlivé tiskárny založené na počtu stránek nebo na velikosti souborů.

- Kvóty se počítají pro každého uživatele (takže jedna skupina omezení se používá pro všechny uživatele dané tiskárny).

- Kvóty zahrnují i oddělovací stránky (pokud se používají).

- To znamená: můžete omezit každého uživatele na 20 stran za den pro drahou tiskárnu, ale nemůžete omezit každého uživatele kromě `Kurta` nebo `root`.

- Při nastavení tiskárny je možné zadat možnosti `job-k-limit`, `job-page-limit` a `job-quota-period`.

- `job-quota-period` nastavuje časový interval pro počítání kvóty (intervaly jsou určené v sekundách, takže den je 60x60x24=86 400, týden je 60x60x24x7=604 800 a měsíc je 60x60x24x30=2 592 000 sekund.)

- Aby bylo možné kvóty vynutit, musí být nenulový time-period plus pro aspoň jeden job-limit.

- Výchozí hodnota 0 pro `job-k-limit` nastavuje, že není žádné omezení.

- Výchozí hodnota 0 pro `job-page-limit` nastavuje, že není žádné omezení.

- Výchozí hodnota 0 pro `job-quota-period` nastavuje, že omezení se používají na všechny úlohy, které vytiskl uživatel známý na tomto systému.

#### Fungující příklady:

Funguje, protože jsou definované time-period plus nebo job-limits nebo oba dva

    lpadmin -p danka_infotec_4850 -o job-quota-period=604800 -o job-k-limit=1024

Nastavuje omezení velikosti souboru na 1MB (celkem) pro každého uživatele existující tiskárny `danka_infotec_4850` po dobu jednoho týdne.

    lpadmin p danka_infotec_4105 -o job-quota-period=604800 -o job-page-limit=100

Toto nastavuje limit 100 stran (celkem) pro každého uživatele existující tiskárny `danka_infotec_4105` po dobu jednoho týdne.

    lpadmin -p danka_infotec_P450 -o job-quota-period=604800 -o job-k-limit=1024 -o job-page-limit=100

Toto nastavuje kombinovaný limit 1MB (celkem) a 100 stran (celkem) pro každého uživatele existující tiskárny `danka_infotec_P450` po dobu jednoho týdne. Bude použit první dosažený limit.

#### Nefungující příklady

Nefunguje, protože je definovaná pouze jeden time-period nebo job-limit.

    lpadmin -p danka_infotec_P320 -o job-quota-period=604800

    lpadmin -p danka_infotec_FullColor -o job-page-limit=100

    lpadmin -p danka_infotec_HiSpeed -o job-k-limit=1024

#### Související chybové zprávy

V momentě, kdy uživatel dosáhne limit, dostane při pokusu o tisk zprávu client-error-not-possible.

### Instalace tiskárny raw

Existují různé způsoby jak definovat raw tiskárnu. Jeden elegantní je použit příkaz `lpadmin`. Jednoduše nedefinujte soubor &PPD; použitý pro tiskárnu a stane se typem raw:

    lpadmin -p Raw_Danka_infotec -E -v lpd://10.160.16.137/PORT1

Tiskárny typu raw jsou ty, které nemění tisknutý soubor do jiného formátu souborů. To budete potřebovat například při tisku z klientů &Windows; pomocí Samba a serveru &CUPS; na tiskárnu PCL: v tom případě už tiskový ovladač &Windows; vygeneruje výsledný tiskový soubor pro cílovou tiskárnu a filtrování přes filtry &CUPS; by mohlo způsobit pouze problémy. V některých případech (pokud chcete zajistit, že soubor bude poslán na tiskárnu nezměněn systémem &CUPS;) se příkaz `lpadmin` bez &PPD; hodí.

## Řešení problémů &CUPS; v &kdeprint;

Tato kapitola manuálu pro &kdeprint; bude naplněna reakcemi uživatelů. Toto je pouze malý začátek.

### Chybová hlášení

Co znamená chyba client-error-bad-request?

Uživatel poslal soubor do &CUPS; serveru a ten ho nedokázal zpracovat. Tuto chybu dostanete i v případě prázdného souboru.

A client-error-not-possible?

Uživatel buď nesmí tisknout na některé tiskárně nebo dosáhl kvóty (založenou na velikosti souboru nebo počtu stránek)

Co znamená client-error-not-found?

Uživatel se pokusil o přístup k neexistujícímu zdroji na serveru &CUPS;, například o tisk neexistujícího souboru nebo ke kterému nemá práva pro čtení.

### Otázky a odpovědi

Proč nemůžu restartovat své úlohy?

Aby jste mohli restartovat vaše dokončené úlohy pomocí webového rozhraní, potřebujete nastavit v souboru `/etc/cups/cupsd.conf`: set `PreserveJobFiles True`.

Jak se zbavím dlouhého seznamu dokončených úloh pomocí webového rozhraní?

TODO

Jak funguje účtování?

&CUPS; podporuje účtování tisku předáváním skoro každé úlohy do filtru pstops. Ten kromě jiných věcí počítá stránky. Výstup tohoto filtru je možné předat do jiných filtrů (například pstoraster --> rastertopcl) nebo poslat přímo na tiskárnu (pokud je to &PostScript; tiskárna).

V každém případě toto funguje stejně pro síťové, paralelní, sériové nebo USB tiskárny. Aby pstops fungoval, potřebuje DSC, Document Structuring Convention kompatibilní s &PostScript; (nebo skoro stejnou) jako vstup. Takže počítá stránky po dobu filtrování na tiskovém serveru a zapisuje informace o každé stránce (kdy, kdo, ID úlohy, její jméno, tiskárna, počet kopií jednotlivých stran, velikost) do `/var/log/cups/page_log`.

Mimochodem: na mém osobním seznamu přání je úprava webalizeru, aby dokázal číst a analyzovat page_log a poskytoval podobný výstup. Má někdo zájem?

V těchto případech nedává správné výsledky:

- V tiskárně se zasekl papír a proto zahodila úlohu (reálná zkušenost nebo možná zrušení úlohy kvůli chybě formátu dat)

- Úlohy vytisknuté jako raw jsou vždy počítané jako 1 stránka (a možná i ve vícerých kopiích).

Proto je účtování v &CUPS; pouze přibližné (často přesné nebo skoro přesné, jindy nepoužitelné). Jediný spolehlivý způsob účtování je interní počítadlo v tiskárně. (Protože podle něho budete platit). Některé tiskárny, ale ne většina, dokáže tuto informaci dodat vzdáleně pomocí SNMP (Simple Network Management Protocol). To vše znamená, že ve velké síti není možné úplně spolehlivě a přesně počítat stránky!

Proč účtování stránek nefunguje s klienty &Windows;?

Z klientů &Windows; se skoro vždy úlohy posílají jako raw. Proč? Pokud &CUPS; funguje jako tiskový server pro klienty &Windows; pomocí původních ovladačů &Windows; pro cílovou tiskárnu, určitě to zaručí správné formátování úloh na klientovi a proto by server neměl nic měnit a tisknout jako raw. Proto se nespustí žádné filtrování (a to není možné pokud vstup od klientů není &PostScript;, což pstops očekává). Proto se vždy spočítá standardní počet stran: 1.

Jak získám seznam dostupných možností pro danou tiskárnu nebo soubor &PPD;?

Přečtěte si manuálové stránky pro `lpoptions`. Můžete se snažit získat informace o dostupných tiskárnách z počítače podporujícího &CUPS;. Nemusí být nainstalované lokálně. Pokud je tiskárna dostupná lokálně (pomocí funkce &CUPS; prohlížení tiskárny), bude fungovat i vzdáleně.

Získání možností tiskáren příkazem ``lpoptions` `-p` `HitachiDDP70MicroPress` `-l`` zobrazí dlouhý seznam dostupných možností, které jsou načteny ze souboru &PPD; pro danou tiskárnu Hitachi-Printer (v mém případě nainstalovaná na vzdáleném serveru transmeta). Aby to vše fungovalo, musí běžet vzdálený server `Transmeta` a jeho démon &CUPS; spolu s lokálním démonem &CUPS;.

Jak mám číst seznam získaný příkazem `lpoptions`?

Výrobci &PostScript; tiskáren mohou legálně definovat svoje vlastní interní jména a procedury i pro standardní možnosti &PostScript;u. Dokud je ovladač schopen získat možnosti z &PPD; a zobrazit je uživatelovi tak, aby je pochopil, je všechno v pořádku. Ale co budete dělat, pokud chcete použít nějakou divnou možnost tiskárny z příkazového řádku? Jak najdete jeho přesnou syntaxi?

Uveďme si příklad: Podívejme se na tiskárnu Hitachi DDP70 a jak implementuje oboustranný tisk. Jak se máme říci, že se má tisknout oboustranně? duplex nebo Duplex? Nebo úplně jiné jméno?

    lpoptions -h transmeta -p Hitachi_DDP70_ClusterPrintingSystem -l | grep uplex

To vygeneruje jako výstup

    TR-Duplex/Duplex: False *True

To je interpretované jako:

- Jméno zkoumané možnosti je `TR-Duplex`.

- Za lomítkem je překlad možnosti jako by byla zobrazená v &GUI; nebo ve webovém rozhraní (Duplex).

- Volba může mít jednu z hodnot `False` nebo `True`.

- Aktuální nastavení je `True`, protože je označené hvězdičkou `*`.

Pro předefinování výchozího nastavení (duplex) a pouze projednostranný tisk musíte použít tento příkaz:

    lpr -P Hitachi_DDP70_ClusterPrintingSystem -o TR-Duplex=False /cesta/k/uloze

Jak získám zformátovaný seznam dostupných možností pro danou tiskárnu nebo &PPD;?

Použijte příkaz `lphelp`, který by měl být lokálně nainstalovaný na vašem systému. Zatím pro tento příkaz neexistuje manuálová stránka.

    lphelp infotecP450

Toto vypíše dostupné možnosti pro danou tiskárnu. Jsou pěkně zformátované a vysvětlují každou dostupnou volbu a jak ji použít. Můžete se ptát naráz na různé tiskárny:

    lphelp infotec7410color DANKA_fullcolor_D2000 HP_ColorLaserJet8550

Funguje to i pro &PPD; soubory. Jednoduše zadejte cestu k &PPD;:

    lphelp /home/kurt/PPDs/HP-ColorLaserJet8550.ppd

### Řešení problémů

Žádný systém není perfektní. Zde jsou některá často zjišťovaná omezení, na která narážejí uživatelé.

Moje tiskárna 3-lp-duplex se chová divně. V čem je chyba?

Jména tiskáren v &CUPS; by měli začínat písmenem a mohou obsahovat až 128 písmen, číslic nebo podtržítek. Použití - může způsobit problémy. Ještě ke jménům: ve jménech tiskáren &CUPS; nerozlišuje velikost písmen. Takže tiskárna `Best_of_Danka` je stejná jako `best_of_danka` nebo `BEST_OF_DANKA`. (To je požadavek &IPP;, který &CUPS; úplně podporuje).

Proč vždy dostanu chybu Unable to connect to SAMBA host: Success s mojí tiskárnou z &Windows; s přístupem pomocí protokolu Samba?

Máte všechny práva na vzdáleném počítači &Windows; nastavené správně? Máte právo tisknout na sdílené &Windows; tiskárně?

Moje soubory pro tiskárnu `lp` někdy divně zmizí a o dva dni později mi řekli, že se na cizí tiskárně objevili moje úlohy. Co se děje?

Věřte mi, je velmi nepravděpodobné, že se vaše tiskárna jmenuje pouze `lp`. Možná s vámi &CUPS; hraje nečistou hru. Možná jste zapnuli nastavení ImplicitClasses On a &CUPS; se snaží natlačit všechny tiskárny, které najde v síti do třídy nazvané lp. Všechny úlohy pro lp se pošlou na tuto třídu a první dostupná tiskárna je vytiskne. Takže pokud máte známého (který pozorně poslouchal když jste mluvili o &CUPS; a &kdeprint;) a hrabal se v systému...je to jasné?

Rada: vyberte unikátní jméno pro síťovou tiskárnu! (Uvědomte si, že pokud si nedáte pozor, může se jeden z vašich paralelních portů stát tiskárnou pro celý svět).