Example #1
0
            /// <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);
            }
Example #2
0
            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);
        }
Example #4
0
            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;
            } 
Example #6
0
        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;
			}