2009-11-03 2 views
5

Negli Internet caffè in cui le persone sono autorizzate a stampare, a volte stampano più pagine di quante non intendessero."Sei sicuro di voler stampare X pagine?" finestra di dialogo prima di stampare effettivamente ... (per qualsiasi app)

Sto cercando un modo per visualizzare "Sei sicuro di voler stampare X pagine?" dialogo dopo aver premuto stampa (in qualsiasi applicazione), ma prima che il lavoro venga inviato alla coda.

Sto cercando degli indicatori su come implementare tale hook.

(Ho preso in considerazione la possibilità di modificare una stampante FOSS PDF per la prima volta in un PDF e quindi di visualizzare la finestra di dialogo e quindi se l'utente preme "Sì", stamparlo sulla stampante reale. questo e uno anche questo perde le caratteristiche specifiche della stampante in questo modo.)

+0

Non sono mai riuscito a implementarlo da solo. Ma ho trovato un software di gestione di internet cafe che può fare questo: http://www.truecafe.net/doc/printer_watcher.html –

risposta

3

Una delle cose che si possono fare è anche una specie di giro attorno, è mettere in pausa lo spooler di stampa, stampare il lavoro, ottenere un conteggio di pagine e quindi richiedere l'utente per conferma. Se l'utente accetta il lavoro, rilascia lo spooler. Non ho le chiamate API a portata di mano, ma ho manipolato le code dello spooler abbastanza facilmente.

Ovviamente l'aspetto negativo di questa idea è se la coda è basata su server e potenziali problemi di autorizzazione potrebbero essere in corso.

Un'altra alternativa sarebbe quella di forzare l'output in un file WMF o EMF e calcolare il conteggio delle pagine in quel modo, quindi consegnarlo allo spooler. Questo è simile alla tua idea di esportarlo in un PDF, ma usa un approccio nativo. (Questo è essenzialmente ciò che le applicazioni in genere (fatto) per fare previews-- rendere il lavoro in un formato metafile che viene poi visualizzata sullo schermo o lo spooling alla stampante)

Purtroppo non c'è modo di ottenere la pagina contare avanti di eseguire il processo di stampa a meno che tu non sia intimamente consapevole del contenuto e possa giudicarlo, quindi sei costretto a seguire almeno le proposte di stampa.

Spero che questo aiuti.

+0

Mi piace la soluzione pause-the-spooler, grazie! Sembra semplice. La maggior parte di queste stampanti è basata su TCP/IP, quindi ogni workstation ha una propria coda. La soluzione WMF/EMF sembra più pulita, ma non ho idea di come iniziare da lì –