What about printers that are configured to print to "FILE:"? Those files may easily be convertible/viewable... Or, network printers that don't need to be associated with a logical printer port, or the port is something like "BRN_123414" or "\\servername\printersharename\"...
You might be able do something with PrinterSettings.GetHdevmode(); but, I think you're waging a losing battle... On Mon, 22 Jan 2007 12:30:53 -0700, MIke Collins <[EMAIL PROTECTED]> wrote: >I need to find a way to gain access to the name of the printer port when >trying to print. > >What I am trying to do is make sure that the user does not print to an >electronic format. For example PDF, Microsoft Office Image Writer, >PaperPort, etc. I only want the user to be able to print directly to a >physical printer. > >It is possible for the user to change the name of the printer. For example >the default name for the Adobe PDF printer is "Adobe PDF" but this name can >be changed by the user to something like "Adobe P.D.F." This would prevent >me from being able to halt printing based on the printer name. > >BUT!! The PrinterSettings.OutputPort (Which is not public) can not be >changed as easily. I would like to be able to get that value so I can check >that to make sure that the user is not printing to PDF, etc. > >Does anyone have any clues?? > >Thanks, >Mike > >Here is a small code snipet: > PrintDocument pd = new PrintDocument(); > > while( true ) > { > PrintDialog dlg = new PrintDialog(); > dlg.PrinterSettings = pd.PrinterSettings; > dlg.AllowCurrentPage = false; > dlg.AllowSelection = false; > dlg.AllowSomePages = false; > dlg.AllowPrintToFile = false; > dlg.PrinterSettings.Copies = 1; > dlg.PrinterSettings.DefaultPageSettings.Landscape = true; > dlg.UseEXDialog = false; > > if( dlg.ShowDialog() == DialogResult.OK ) > { > // Here we check to see if the user is attempting to >print > // to a printer that we won't accept. (PDF, etc.) > string temp = >pd.PrinterSettings.PrinterName.ToLower(); > if( temp.IndexOf( "pdf" ) > -1 || > temp.IndexOf( "image writer" ) > -1 || > temp.IndexOf( "paperport" ) > -1 ) > { > MessageBox.Show( "Invalid printer type. >Please select a different printer." ); > } > =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com