Possiedo un'applicazione che genera una generazione di file centrale in base alle richieste dell'utente. Quello che voglio essere in grado di fare con esso una volta che i file sono creati è metterli nella coda di stampa di quell'utente (in questa organizzazione c'è una coda di stampa centrale in modo che gli utenti siano responsabili della stampa dei propri documenti) in modo che possano essere stampato fuori quando l'utente è pronto.Aggiunta di lavori a un utente specifico PrintQueue
Utilizzando gli assembly System.Printing
in .net Sono in grado di aggiungere un lavoro alla mia coda di stampa, quindi sono su quella parte. Il mio codice di stampa simile a questo:
private void RunPrintJob(string myFileName)
{
PrintServer ps = new PrintServer(@"\\printatron");
PrintQueue queue = new PrintQueue(ps, "psandqueues");
try
{
PrintSystemJobInfo pj = queue.AddJob(myFileName);
Stream myStream = pj.JobStream;
Byte[] myByteBuffer = GenerateBufferFromFile(myFileName); myStream.Write(myByteBuffer, 0, myByteBuffer.Length);
myStream.Close();
}
catch (Exception ed)
{
Debug.WriteLine(ed.Message);
if (ed.InnerException != null)
{
Debug.WriteLine(" -> " + ed.InnerException);
}
result = false;
}
queue.Commit();
}
Così ho i miei documenti creati in posizione centrale, lo so che l'utente è stato responsabile per la loro creazione e posso inviare alla stampante.
Quello che mi serve ora è un modo per inviarli alla stampante con l'utente che li ha creati impostati come loro utente. C'è un modo per farlo attraverso la coda di stampa? So che è leggibile dalla proprietà PrintSystemJobInfo.Submitter
, ma è di sola lettura. In caso contrario, devo farlo attraverso la rappresentazione e, in tal caso, in quest'ultimo caso, c'è qualcosa che posso fare per evitare di memorizzare una serie di password utente e il software fallire ogni volta che l'utente cambia la password? Sembra che sarebbe un modo davvero maldestro di operare, ma poiché questa attività non viene attualmente eseguita in modo interattivo, quali altre opzioni ho?
Sarei interessato a ricevere una risposta a questo, ma nel frattempo ho adottato un approccio diverso alla fine, poiché non sono riuscito a trovare un modo utile per inviare i lavori di stampa sul server con gli strumenti che avevo a disposizione (incluso .net 2.0, non sono sicuro che la documentazione di System.Printing avrebbe aiutato qui, quindi ho risolto il problema impostando un'applicazione locale che si trovava in background, recuperando i documenti per la stampa e stampandoli dalla macchina dell'utente, evitando qualsiasi autorizzazione i problemi. – glenatron
Allora, vorresti aggiornare la tua domanda? –