Reputation: 4938
I wrote code to get name of printer which is installed in my system.but i don't know to get that printers port name. here the code what i wrote.
public MainWindow()
{
this.InitializeComponent();
PrintServer server = new PrintServer();
foreach (PrintQueue queue in server.GetPrintQueues())
{
cboPrinters.Items.Add(queue.FullName);
}
var DefaultPrinter = new LocalPrintServer().DefaultPrintQueue;
string default_name=DefaultPrinter.FullName;
txxt_default.Text = "The default printe is "+" "+default_name;
}
it's result will be like this
i have to get selected printer's port name "DOP7"(mentioned below figure).please help me.
Upvotes: 1
Views: 2453
Reputation: 17083
Have you tried PrintQueue.QueuePort Property?
string default_port = DefaultPrinter.QueuePort.Name;
Update:
Then I recommend adding PrintQueue
object to ComboBox
public MainWindow()
{
InitializeComponent();
PrintServer server = new PrintServer();
foreach (PrintQueue queue in server.GetPrintQueues())
{
cboPrinters.Items.Add(queue);
}
}
and using DisplayMemberPath
for showing the FullName
:
<ComboBox Name="cboPrinters"
DisplayMemberPath="FullName"
SelectionChanged="cboPrinters_SelectionChanged" />
In EventHandler you can get port name like this:
private void cboPrinters_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
PrintQueue printer = cboPrinters.SelectedItem as PrintQueue;
string portname = printer.QueuePort.Name;
}
Upvotes: 2