/// <summary> /// Get the PrintQueue from the PrinterName /// </summary> /// <param name="printerName"></param> /// <returns></returns> PrintQueue FindPrintQueue(string printerName) { EnumeratedPrintQueueTypes[] flag = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; PrintQueueIndexedProperty[] pArray = new PrintQueueIndexedProperty[2]; pArray[1] = PrintQueueIndexedProperty.QueueAttributes; new PrintingPermission(PrintingPermissionLevel.DefaultPrinting).Assert(); try { using (LocalPrintServer s = new LocalPrintServer()) { foreach (PrintQueue q in s.GetPrintQueues(pArray, flag)) { if (printerName.Equals(q.FullName, StringComparison.OrdinalIgnoreCase)) { q.InPartialTrust = true; return(q); } } } } finally { CodeAccessPermission.RevertAssert(); } return(null); }
AcquirePrintQueue( string printerName ) { PrintQueue printQueue = null; EnumeratedPrintQueueTypes[] types = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; // // This forces us to acquire the cached version of the print queues. // This theoretically should prevent crashing in the printing system // since all it is doing is reading the registry. // PrintQueueIndexedProperty[] props = new PrintQueueIndexedProperty[] { PrintQueueIndexedProperty.Name, PrintQueueIndexedProperty.QueueAttributes }; SystemDrawingHelper.NewDefaultPrintingPermission().Assert(); //BlessedAssert try { // // Get the PrintQueue instance for the printer // using (LocalPrintServer server = new LocalPrintServer()) { foreach (PrintQueue queue in server.GetPrintQueues(props, types)) { if (printerName.Equals(queue.FullName, StringComparison.OrdinalIgnoreCase)) { printQueue = queue; break; } } } if (printQueue != null) { printQueue.InPartialTrust = true; } } finally { CodeAccessPermission.RevertAssert(); } return(printQueue); }
private static Collection <string> GetPrintQueueNames(string serverName) { Collection <string> queues = new Collection <string>(); using (PrintServer server = new PrintServer(@"\\" + serverName)) { EnumeratedPrintQueueTypes[] queueTypes = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Shared }; foreach (PrintQueue queue in server.GetPrintQueues(queueTypes)) { queues.Add(queue.Name); } } return(queues); }
private PrintQueue AcquirePrintQueue(string printerName) { PrintQueue printQueue = null; EnumeratedPrintQueueTypes[] enumerationFlag = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; PrintQueueIndexedProperty[] propertiesFilter = new PrintQueueIndexedProperty[] { PrintQueueIndexedProperty.Name, PrintQueueIndexedProperty.QueueAttributes }; SystemDrawingHelper.NewDefaultPrintingPermission().Assert(); try { using (LocalPrintServer localPrintServer = new LocalPrintServer()) { foreach (PrintQueue printQueue2 in localPrintServer.GetPrintQueues(propertiesFilter, enumerationFlag)) { if (printerName.Equals(printQueue2.FullName, StringComparison.OrdinalIgnoreCase)) { printQueue = printQueue2; break; } } } if (printQueue != null) { printQueue.InPartialTrust = true; } } finally { CodeAccessPermission.RevertAssert(); } return(printQueue); }
AcquirePrintQueue( string printerName ) { PrintQueue printQueue = null; EnumeratedPrintQueueTypes[] types = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; // // This forces us to acquire the cached version of the print queues. // This theoretically should prevent crashing in the printing system // since all it is doing is reading the registry. // PrintQueueIndexedProperty[] props = new PrintQueueIndexedProperty[] { PrintQueueIndexedProperty.Name, PrintQueueIndexedProperty.QueueAttributes }; (new PrintingPermission(PrintingPermissionLevel.DefaultPrinting)).Assert(); //BlessedAssert try { // // Get the PrintQueue instance for the printer // using (LocalPrintServer server = new LocalPrintServer()) { foreach (PrintQueue queue in server.GetPrintQueues(props, types)) { if (printerName.Equals(queue.FullName, StringComparison.OrdinalIgnoreCase)) { printQueue = queue; break; } } } if (printQueue != null) { printQueue.InPartialTrust = true; } } finally { PrintingPermission.RevertAssert(); } return printQueue; }
private void frmPrintPreView_Load(object sender, EventArgs e) { int i; string defultPrinterName = ""; try { var printDoc = new PrintDocument(); for (i = 0; i < PrinterSettings.InstalledPrinters.Count; i++) { // pkInstalledPrinters = PrinterSettings.InstalledPrinters[i]; // comboInstalledPrinters.Items.Add(pkInstalledPrinters); if (printDoc.PrinterSettings.IsDefaultPrinter) { defultPrinterName = printDoc.PrinterSettings.PrinterName; break; } } } catch { } try { var localPrintServer1 = new PrintServer(); } catch { MessageBox.Show("invalid Framwork 3.5"); } try { PrintQueue printQueue = null; var localPrintServer = new PrintServer(); var FiltterPrinterType = new EnumeratedPrintQueueTypes[2]; FiltterPrinterType[0] = EnumeratedPrintQueueTypes.Connections; FiltterPrinterType[1] = EnumeratedPrintQueueTypes.Local; // Retrieving collection of local printer on user machine var localPrinterCollection = new PrintQueueCollection(); try { localPrinterCollection = localPrintServer.GetPrintQueues(FiltterPrinterType); } catch { MessageBox.Show("vvv"); } //printQueue = localPrintServer.; IEnumerator<PrintQueue> all = null; try { all = localPrinterCollection.GetEnumerator(); } catch { MessageBox.Show("ss"); } var AllPrinter = new Collection<PrintQueue>(); PrintQueue defultPrinter = null; while (all.MoveNext()) { try { // printQueue = all.Current; // if (printQueue.DefaultPrintTicket ) // this.comboBox1.Items.Add(printQueue.FullName); if (defultPrinterName == all.Current.Name) { defultPrinter = all.Current; } AllPrinter.Add(all.Current); } catch { MessageBox.Show("kkk"); } } //System.Printing.LocalPrintServer lPrint = new System.Printing.LocalPrintServer(); //System.Printing.PrintQueueCollection pCol = lPrint.GetPrintQueues(); try { cmbPrinters.DataSource = AllPrinter; cmbPrinters.DisplayMember = "FullName"; try { if (defultPrinter != null) { this.cmbPrinters.SelectedItem = defultPrinter; } } catch { } } catch { MessageBox.Show("tttt"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } Image = CurrentViewImage;// AllImage[0]; rbtnCurrentView.Checked = true; // cmbPrinters.Enabled = true; cboxFitToPage.Checked = true; cboxCenter.Checked = true; }
/// <summary> /// Get the PrintQueue from the PrinterName /// </summary> /// <param name="printerName"></param> /// <returns></returns> PrintQueue FindPrintQueue(string printerName) { EnumeratedPrintQueueTypes[] flag = new EnumeratedPrintQueueTypes[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections }; PrintQueueIndexedProperty[] pArray = new PrintQueueIndexedProperty[2]; pArray[1] = PrintQueueIndexedProperty.QueueAttributes; new PrintingPermission(PrintingPermissionLevel.DefaultPrinting).Assert(); try { using (LocalPrintServer s = new LocalPrintServer()) { foreach (PrintQueue q in s.GetPrintQueues(pArray, flag)) { if (printerName.Equals(q.FullName, StringComparison.OrdinalIgnoreCase)) { q.InPartialTrust = true; return q; } } } } finally { CodeAccessPermission.RevertAssert(); } return null; }