[Tech] Kylix e spooler di stampa

Franco Bagnoli bagnoli@dma.unifi.it
Sab 11 Ago 2001 17:11:38 CEST


On Fri, 10 Aug 2001, Cristiano Muzi wrote:

> L'applicazione a cui sto lavorando, ad un certo punto deve:
>
> - inviare del testo (ascii puro) allo spooler di stampa
>
> - controllare periodicamente se il "print job" è ancora nella coda di stampa o se è stato stampato.
>
> Premetto che sono abbastanza ignorante su linux.
>
> Così su due piedi, mi vengono in mente un paio di soluzioni:
>
> - aprire un socket e collegarmi al demone lpd (ma non so come fare, né *cosa* inviargli; ho dato una rapidissima occhiata ai sorgenti di lpr e lpq ma non c'ho capito molto).
>
> - generare un file con i dati da stampare, quindi eseguire lpr; periodicamente, eseguire lpq redirigendo l'output ad un file, quindi aprire il file per controllare se il file che avevo precedentemente inviato in stampa è stato stampato o è ancora in attesa).
>
> La seconda mi sembra la soluzione più semplice, ma anche la meno elegante e la più macchinosa.
>
> Potete darmi qualche consiglio?! Voi come fareste?

Secondo me devi prima stabilire se vuoi usare lpd classico o cups, che e'
il nuovo sistema per gestire le code di stampa "di rete".

In entrambi i casi puoi usare lpq, perche' anche cups fornisce una
interfaccia compatibile a lpd.

Se usi lpd classico puoi anche vedere nella directory
/var/spool/<nome_stampante> cosa succede al file di spool, ora qui a casa
non ho tempo e veglia di controllare, ma sono sicuro di ricordare che
tutta la gestione delle code di stampa viene fatta attraverso dei file di
testo. Oppure, piu' facile, stabilisci una nuova coda di stampa
(corrispondente alla stessa stampante di prima) e puoi usare il filtro of
(che e' quello che manda effettivamente il lavoro alla stampante) per
farti mandare una notifica che il lavoro e' stato mandato via.

Se usi cups (consigliato) allora la situazione e' molto piu' versatile:
cups implementa un proprio protocollo (ipp, ma anche http) che e'
completamente definito
(vedi www.cups.org) e in questo caso e' facile (penso) connettersi via
socket e mandar i comandi necessari per avere le varie informazioni
(cosa che credo non sia possibile con lpd). Inoltre cups fornisce gia'
una interfaccia http (porta 631) che da' le informazioni sullo stato del
lavoro.

Se non ci cavi le gambe fatti risentire, non ho mai lavorato con cups ma
potrebbe essere interssante.

-- 
Franco Bagnoli (franchino) <bagnoli@dma.unifi.it>
Dipartimento di Matematica Applicata "G. Sansone" - Universita' di Firenze
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787
GPG Key fingerprint = 169D 9EA5 8FD3 7EDA E43A  9830 255F BCEC 0D63 3728





Maggiori informazioni sulla lista flug-tech