Mam aplikację, która wykonuje pewne centralne generowanie plików na podstawie żądań użytkownika. To, co chcę móc z nim zrobić po utworzeniu plików, to umieszczenie ich w kolejce wydruku tego użytkownika (w tej organizacji znajduje się centralna kolejka drukowania, więc użytkownicy są odpowiedzialni za drukowanie własnych dokumentów), aby mogli następnie być wydrukowane, gdy użytkownik jest gotowy.Dodawanie zadań do konkretnego użytkownika PrintQueue
Korzystając z zespołów System.Printing
w .NET, mogę dodać zadanie do mojej własnej kolejki wydruku, więc jestem odpowiedni dla tej części. Mój kod wydruku wygląda tak:
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();
}
Więc mam centralnie utworzone dokumenty, wiem, który użytkownik jest odpowiedzialny za ich tworzenie i mogę wysłać je do drukarki.
Potrzebuję teraz sposobu, aby wysłać je do drukarki z użytkownikiem, który je utworzył, jako jego użytkownik. Czy istnieje sposób, aby to zrobić w kolejce drukowania? Wiem, że jest on czytelny z właściwości PrintSystemJobInfo.Submitter
, ale to jest tylko do odczytu. Jeśli nie, czy muszę to zrobić przez podszywanie się pod inne osoby, a jeśli tak, to czy jest coś, co mogę zrobić, aby uniknąć konieczności przechowywania hasła haseł użytkowników i oprogramowania, które zawodzi za każdym razem, gdy użytkownik zmieni swoje hasło? Wydaje się, że byłby to naprawdę niezgrabny sposób działania, ale ponieważ ta aktywność nie jest obecnie wykonywana interaktywnie, jakie mam inne opcje?
Czy chciałbyś więc zaktualizować swoje pytanie? –