Ebben a PrinterSettins osztály segít bennünket, melynek példánya a PrintDocument osztály PrinterSettings property-n keresztül érhető el.
Első lepésként egy ügyes kis ciklussal kiíratjuk az összes property-jének nevét és azok aktuális értékeit egy ListBox-ba.
Type t = printDocument1.PrinterSettings.GetType();
PropertyInfo[] p = t.GetProperties();
foreach(PropertyInfo i in p)
{
listBox1.Items.Add(i.Name + ": " + i.GetValue(printDocument1.PrinterSettings, null).ToString());
}
Az így megjelenő property-k a következők lesznek:
- PrinterName - Ennek az osztálynak a PrinterName property-je árulja el a nyomtató nevét.
- CanDuplex - A CanDuplex property, ha igaz értéket tartalmaz, akkor az adott nyomtató képes a kétoldalas nyomtatás kezelésére.
- Collate - Ha a Collate property igaz, akkor a nyomtató képes a több példányban nyomtatandó dokumentum szétválogatására.
- IsDefaultPrinter - Ha az IsDefaultPrinter igaz, akkor az aktuális nyomtató az alapértelmezett.
- IsPlotter – Az IsPlotter property igaz értéke esetén egy plotter eszközről van szó.
- IsValid - Ha az IsValid property igaz, akkor a PrinterName property valós értéket tartalmaz.
- LandscapeAngle - A LandscapeAngle property-ből kiolvashatjuk, hogy a fekvő lapos nyomtatás esetén milyen szögben elforgatva történik a nyomtatás. Ennek értéke 90 vagy 270 lehet.
- MaximumCopies - A MaximumCopies property-ből azt a számot tudhatjuk meg, mely a maximális másolatok számát takarja.
- SupportsColor - Ha a SupportsColor property igaz, akkor a nyomtató színesben is képes nyomtatni.
Az összes telepített nyomtató nevét lekérdezhetjük az InstalledPrinters StringCollection típusú property-n keresztül.
foreach(String s in PrinterSettings.InstalledPrinters)
{
listBox2.Items.Add(s);
}
A lehetséges papír méreteket megtudhatjuk a PaperSizes property-n keresztül.
foreach(PaperSize ps in printDocument1.PrinterSettings.PaperSizes)
{
listBox3.Items.Add(ps);
}
A lehetséges papír adagolási módokat szintén egy listában kapjuk meg a PaperSources property-n keresztül.
foreach(PaperSource ps in printDocument1.PrinterSettings.PaperSources)
{
listBox4.Items.Add(ps);
}
Végül az adott nyomtató felbontási képességeinek listáját a PrinterResolutions property listájából olvashatjuk ki.
foreach(PrinterResolution pr in printDocument1.PrinterSettings.PrinterResolutions)
{
listBox5.Items.Add(pr);
}