Gestione Cassetti Stampante HP da VB.NET

martedì 23 febbraio 2010 - 11.27

GuidoGioia Profilo | Newbie

... sono un nuovo utente con un problema strano... dopo lunghe ricerche sono stato colpito dalla chiarezza e dalla "sensatezza" di questo forum e quindi chiedo a voi tutti, please, un aiuto

PROBLEMA: Da applicazione VB.NET e Crystal Report non riusciamo a pilotare i cassetti di ( varie ) stampanti HP...

Abbiamo letto di tutti e provato di tutto, ma pare che proprio che nulla di quanto fattibile funzioni, o che non corrispondano gli ID reali dei cassetti.
Abbiamo utlizzato naturalmente CrystalDecisions.Shared.PaperSource ed anche System.Drawing.Printing.PaperSourceKind, sia con le indicazioni nominali dei cassetti ( Lower, Upper, Envelope ecc ) sia utilizzando tutti i "numeri ID" che possano corrispondere ai cassetti...

naturalmente abbiamo letto accuratamente anche tutto il possibile riguardo ai settaggi della stampante...

Nulla sembra funzionare: ciò che è stato stabilito sulla stampante o è stato "avviato" dalla stampante ha sempre supremazia su quello che è stato richiesto dall'applicazione...

Sulla rete abbiamo trovato veramente di tutto, ma nessuno che dica "facendo così ho risolto"...
Nessuna stampante provata ha cassetti aggiuntivi: quindi si tratta di pilotare solo il manual feeder ( cassetto 1 ) o il cassetto "basso" ( cassetto 2 )


Grazie Mille !

( ... è sicuramente un problema di nostra profonda Demenza Sviluppatoria: mi sembra strano altrimenti... )

MarKonE Profilo | Guru

Buongiorno Guido e benvenuto su DNH

Secondo me questi problemi possono essere causati dal driver utilizzato dalla stampante.

Durante i test hai provato ad utilizzarne altri e/o a modificare le impostazioni dello stesso ?

Posso sapere qual è il modello esatto della stampante ?

Ciao !


My Blog... http://blogs.dotnethell.it/Mark/

carloalberto Profilo | Junior Member

>...
>PROBLEMA: Da applicazione VB.NET e Crystal Report non riusciamo
>a pilotare i cassetti di ( varie ) stampanti HP...
>

ciao
qualche tempo fa ho gia avuto modo di parlare di questo problema.
l'unica maniera che ho trovato per risolvere è stato quello di creare un driver specifico che punta al casseto A e uno al cassetto B.
eventualemnte prova ad associare al report una stampante neutra (senza cassetti, magari una stp pdf), salva e poi togli l'associazione e risalva. vedi se con questo artifizio riesci ad ottenere qualcosa.
ciao

GuidoGioia Profilo | Newbie

Grazie per la rapida risposta:
Abbiamo utlizzato HP4200n, HP3800n a colori e Hp2420n con i driver sia PCL5 che PCL6, connesse da rete, da USB, da parallelo...
siamo dei vecchi metodici ! Sarei curioso di provare in postscript, ma tempo di dover avere poi altre limitazioni nella stampa.

Tuttavia la tua sensazioen è corretta: tutto sembra aver origine dalla stampante

saluti !

GuidoGioia Profilo | Newbie

leggendo CarloAlberto ammettiamo la nostra sconfitta: anche noi abbiamo pensato a questa soluzione e l'abbiamo subito adottata... ma non funziona: quello stabilito dalla prima stampa sulla stampante "cassetto up", per esempio, inibisce l'accettazione del sucessivo invio sulla stessa stampante ma con driver "cassetto low"...


sapete se per caso è un problema degli ultimi "invasivi" driver HP o accade lo stesso anche con altre stampanti ?

carloAlberto, tu che stampante avevi usato ?

Saluti

MarKonE Profilo | Guru

Non dovrebbe dipendere dai driver specifici HP.

La soluzione di CarloAlberto è valida e funzionale, sempre se ti è possibile installare ogni stampante due volte. Se sono stampanti di rete non dovresti avere problemi.

Ciao !

My Blog... http://blogs.dotnethell.it/Mark/

GuidoGioia Profilo | Newbie

scusate, ho corretto il mio messaggio precedente. Una svista.

La soluzione proposta da carloalberto con due diverse stampanti/driver sulla stessa stampante/reale non funziona: inizia bene con il cassetto inviato, poi valgono sempre gli automatismi definiti dalla stampante...

E' molto strano

Grazie Mille per il vostro tempo !

MarKonE Profilo | Guru

Sei sicuro di aver configurato correttamente le "preferenze di stampa" per ciascuna stampante ?

Anche io tempo fa avevo adottato una situazione simile. Una volta configurato il driver dovrebbe essere sufficiente inviare il documento da stampare alla stampante..che in automatico utilizza il cassetto di default.

Ciao !

My Blog... http://blogs.dotnethell.it/Mark/

GuidoGioia Profilo | Newbie


Si, abbiamo provato molto attentatemente quello che consigli. Per farlo occorre naturalmente badare anche a quanto definito dal pannello stampante: HP dice che se si lascia sul pannello "qualsiasi formato" relativo ad un cassetto quello avrà sempre supremazia...

Ma tantè non va ugualmente: al primo colpo sembra andare giusto, poi prende sempre il cassetto 2, o comunque quello DEFINITO DA PANNELLO E NON DA SW.

Ora proviamo a ricambiare tutti i driver, ed adottare magari il postscript...

La depressione incombe.

Saluti

carloalberto Profilo | Junior Member

una domanda,
ma se stampi da WORD (esempio) hai lo stesso problema?

GuidoGioia Profilo | Newbie

Dunque: mi sembra che questa sia una strada percorribile. Ora è stat provata su 4200 e funziona. Naturalmente la soluzione vale per stampanti DI RETE, altrimenti mi sembra già più difficile che vada...

RIASSUMIAMO:
Definire due stampanti diverse per la medesima stampante reale.
Sul pannello della stampante TOGLIAMO dai due vassoi ogni riferimento a "QUALSIASI FORMATO", mettiamo A4 e NORMALE per entrambi i vassoi.
Nominiamo A come ALTO la stampante virtuale per il manual feeder dove come PREFERENZE DI STAMPA nel driver mettiamo vassoio 1 e, attenzione, su impostazioni dispositivo diciamo che il vassoio 2 NON E' DISPONIBILE.
Nominiamo B come BASSO l'altro driver per il vassoio 2 ( Preferenze di stampa vassoio 2, e Impostazione dispositivo per Vassoio 2 NON DISPONIBILE. )

Nel report diciamo:
mioReport.PrintOptions.PrinterName = "HP4200-101-B"
mioReport.PrintOptions.PaperSource = CrystalDecisions.Shared.PaperSource.Lower
PER LA STAMPANTE VIRTUALE DEL CASSETTO "basso" vassoio 2

e diciamo:
mioReport.PrintOptions.PrinterName = "HP4200-101-A"
mioReport.PrintOptions.PaperSource = CrystalDecisions.Shared.PaperSource.Manual
PER LA STAMPANTE VURTUALE DEL CASSETTO ALTO MANUAL FEEDER

La cosa funziona, e sembra anche "solida".
Altre soluzioni non ne abbiamo individuate.

ATTENZIONE: quando si esaurisce o si cambia la carta la stampante chiede "velocemente" l'adeguamento del formato. Se non si "risponde sul pannello la stampante inizia a stampare di nuovo dal cassetto di default... e tu hai l'impressione che non vada più...
( naturalmente in dipendeza di quanto si e' messo nel paramento "Manuale OFF-ON" del pannello. )

Grazie di tutti per "l'indirizzamento" verso la soluzione !!!

Saluti









civetta Profilo | Newbie

Ho avuto anche io lo stesso problema, ma la soluzione dei due spool di stampa non risolve il mio problema perchè i documenti del 1° e 2° cassetto devo stamparli in sequenza e per un certo numero di volte. Ho finalmente trovato una possibile soluzione, e la scrivo per tutti coloro che cercano una soluzione.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Con il ciclo foreach si possono vedere tutti i cassetti della stampante specifica e poi assegnarli tramite codice numerico 'ps.RawKind' alle opzioni personalizzate del nostro report.
l'essenziale è invisibile agli occhi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5