Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [c#] Recuperare lo stato della stampante

    Salve a tutti.
    Il mio problema è il seguente :
    ho un programma c# che esegue delle operazioni e stampa dei risultati (uno scontrino su una stampante termica USB) e funziona tutto correttamente.

    Ho bisogno di recuperare lo stato della stampante prima di inviare in stampa per vedere se è connessa, accesa, se c'è la carta o se vi sono altri problemi.

    Ma non riesco a farlo.

    Con tutti le porzioni di codice che ho trovato in rete
    (che usano :ManagementObject, PrintServer, PrintQueue ecc ecc) lo stato risulta sempre in linea (PrinterStatus 3, PrinterState 0).

    Ho capito che il problema è dovuto al fatto che Windows usa un servizio di spooler che in realtà nasconde e rende trasparente la stampante ai programmi..
    Infatti anche se la stampante è staccata o spenta...il documento va in coda di stampa e vi rimane.

    ma io ho bisogno di conoscere lo stato della stampate per eventualmente annullare alcune operazioni... come devo fare??!?!?!?
    grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma a che serve sapere se c'è la carta? Quando stampi potrebbe finire ...

    E a cosa sapere che è accesa, quando inizi a stampare potrebbe spegnersi ...

    Lo stesso accade se stampo un documento con Word o con altro programma ... non va mica a vedere se la stampante è accesa o ha la carta ...

    Forse è un "non problema" ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    ...alcune operazioni devono terminare con una stampa..(uno scontrino su una stampante termica USB)
    ..se la stampante non va non si possono effettaure quelle operazioni....
    e dovrei saperlo prima ovviamente...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì, ma quello che ti voglio dire è che nulla ti assicura l'effettiva stampa anche se qualche momento prima il sistema ti assicura che la stampante è collegata e accesa.

    Ripeto è un falso problema.

    Al limite devi prevedere la "ristampa" degli scontrini.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    se proprio vuoi, fai la prova del budino: mangialo! tradotto: prova a stampare una cosa qualunque: se non ti ritorna errore stampi lo scontrino (ma la stampante potrebbe spegnersi o finire la carta proprio mentre stampi la stampa effettiva )

    da' retta a oregon, controlla/gestisci l'errore e prevedi la ristampa


  6. #6
    Ok, ti ringrazio per le risposte..

    - Hai ragione sul fatto di prevedere la "ristampa" degli scontrini ..infatti l'ho prevista.
    e
    - Hai ragione nel dire "che nulla ti assicura l'effettiva stampa"

    però, se possibile, vorrei poter dare "prima" dei messaggi di errore per evitare il problema piuttosto
    che far comparire l'errore dopo...e comunque anche in questo caso vorrei sapere che tipo di errore restituisce la stampante..

    ...quel che voglio fare è possibile?
    grazie

  7. #7
    Boh..a questo punto non so se sia possibile ...però non mi sembra una richiesta assurda...

    se io mando in stampa un documento word e la stampante è staccata...il documento va in coda di stampa...senza errori..(o sbaglio?)
    nel mio caso non può succedere questo..

    provando a modificare le impostazioni della stampante e disattivando
    lo spooler invece mi restituisce un errore....e sto vedendo se posso gestirlo..

    ma ripeto...io vorrei saperlo prima...

    e comunque...in rete ho trovato tanti post in cui vengono gestiti tanti stati della stampante...
    Online, offline, out of paper...

    se ci sono gli strumenti perchè non dovrei utilizzarli?...
    il problema è che non mi funzionano..

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Supponiamo che la stampante sia online e con la carta e il tuo programma lo riconosca e mandi la stampa.

    A questo punto succede qualcosa (di hardware) e la stampa non va a buon fine (si inceppa la carta, si brucia la stampante, va via la corrente ...) ... cosa fai? A quel punto, cosa prevedi per il tuo utente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    vabene...nn si può fare..

    ..hai ragione in tutte le cose che hai scritto...
    ma ho bisogno di sapere se la stampante c'è e se funziona...

    se succede un terremoto dopo il controllo o se la stampante esplode...
    ...è ovvio che non lo posso sapere prima...
    ..ci sarà un messaggio di errore
    ...prevedo la ristampa
    ..prevedo la telefonata automatico al 113...


    ma tutto quello che posso Sapere prima...via codice voglio gestirlo prima....
    visto che ...coem detto prima....c# ha gli strumenti per farlo..(in teoria)

    è una richiesta per il mio programma.
    ..ma immagino non si possa fare....

    grazie comunque per le risposte.

  10. #10
    dipende dalla stampante. quello che tu dici (.in rete ho trovato tanti post in cui vengono gestiti tanti stati della stampante...
    Online, offline, out of paper...) probabilmente viene fatto con chiamate dirette ai driver della stampante (e infatti quando monti una stampante spesso viene montato tanto software a corredo proprio per monitorare lo stato della stampante)

    riepilogando:
    - gestisci la ristampa
    - gestisci l'errore (try-catch)
    - se proprio gradisci, prova una stampa a vuoto *prima* di tutto il giro, così vedi se almeno la stampante esiste
    - se in rete hai già trovato post, perché non segui i consigli che hai trovato? (eventualmente posta qualche link, grassie)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.