Выберите разрешение принтера в C#

В этом примере показано, как разрешить пользователю выбирать разрешение принтера. Когда вы устанавливаете принтер объекта PrintDocument, его коллекция DefaultPageSettings.PrinterSettings.PrinterResolutions содержит объекты PrinterResolution, представляющие доступные разрешения принтера. Например, вы можете выбрать один из них для печати в черновом разрешении и сэкономить некоторое время и тонер.

При запуске эта программа использует следующий код для отображения доступных принтеров в cboPrinter ComboBox.

// Список доступных принтеров.
private void Form1_Load(object sender, EventArgs e)
{
    foreach (string printer in PrinterSettings.InstalledPrinters)
        cboPrinter.Items.Add(printer);
}

Этот код просто проходит через коллекцию System.Drawing.Printing.PrinterSettings.InstalledPrinters, добавляя имена принтеров в ComboBox.

Когда пользователь выбирает принтер, следующий код отображает разрешения принтера в cboResolution ComboBox.

// Показывать доступные разрешения этого принтера.
private void cboPrinter_SelectedIndexChanged(
    object sender, EventArgs e)
{
    // Выберите принтер.
    pdocSmiley.PrinterSettings.PrinterName = cboPrinter.Text;

    // Отображение доступных разрешений.
    cboResolution.Items.Clear();
    foreach (PrinterResolution resolution in
        pdocSmiley.DefaultPageSettings.
            PrinterSettings.PrinterResolutions)
    {
        cboResolution.Items.Add(resolution.ToString());
    }

    // Включить кнопку «Печать», если принтер и
    // выбрано разрешение.
    btnPrint.Enabled = (
        (cboPrinter.SelectedIndex > -1) &&
        (cboResolution.SelectedIndex > -1));
}

Код сначала устанавливает принтер объекта PrintDocument на тот, который выбран пользователем. Затем он перебирает разрешения принтера, добавляя их в ComboBox.

Наконец, когда пользователь нажимает кнопку «Печать», следующий код печатает на выбранном принтере с выбранным разрешением.

// Печать.
private void btnPrint_Click(object sender, EventArgs e)
{
    // Выберите принтер.
    pdocSmiley.PrinterSettings.PrinterName = cboPrinter.Text;

    // Выберите выбранное разрешение.
    pdocSmiley.DefaultPageSettings.PrinterResolution =
        pdocSmiley.DefaultPageSettings.PrinterSettings.
            PrinterResolutions[cboResolution.SelectedIndex];

    // Распечатать.
    pdocSmiley.Print();
}

Источник: http://csharphelper.com/blog/2015/10/select-printer-resolution-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector