loai_maane Ответов: 1

Установка принтера с использованием C#


Привет,
Я пытаюсь изменить настройки принтера, используя приведенный ниже код , при нажатии на кнопку он печатает, но настройки принтера не изменились, принтер это общий принтер, и я дал разрешения пользователю изменить настройки.есть какие-нибудь идеи?

Что я уже пробовал:

 private void button1_Click(object sender, EventArgs e)
        {
                   string exeFolder = Application.StartupPath;
                   string Filepath = Path.Combine(exeFolder, @"Form.pdf");
                    Process printjob = new Process();
                    printjob.StartInfo.FileName = Filepath;
                    printjob.StartInfo.Verb = "Print";
                    printjob.StartInfo.CreateNoWindow = true;
                    printjob.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                    PrinterSettings ps = new PrinterSettings();
                   PrintDocument printdoc= new PrintDocument();
                   printdoc.PrinterSettings = ps;
                   IEnumerable<PaperSize> paperSizes = ps.PaperSizes.Cast<PaperSize>();
                   PaperSize sizeA4 = paperSizes.First<PaperSize>(size => size.Kind == PaperKind.A4);
                    printdoc.DefaultPageSettings.PaperSize = sizeA4;
                    PaperSource oPSource = new PaperSource();
                    oPSource.RawKind = (int)PaperSourceKind.Lower;
                    printdoc.DefaultPageSettings.PaperSource = oPSource;
                    printdoc.PrinterSettings.Copies = 2;            
                    printjob.Start();
}

1 Ответов

Рейтинг:
4

Dave Kreskowiak

Вы используете внешний процесс для печати PDF-файла. Этот процесс будет использовать свои собственные настройки печати и выполнять саму печать.

Ваш код PrintDocument бесполезен, поскольку он применяется только к печати внутри вашего собственного приложения, когда ваш код выполняет фактический рендеринг на странице PrintDocument. Эти классы вообще не будут работать с внешним процессом, выполняющим печать.

У вас нет никакого контроля над тем, как внешнее приложение печатает PDF-файл.


loai_maane

Большое спасибо Дэйв ,
Я не получил никаких библиотек с открытым исходным кодом для печати PDF-файла с определенными настройками печати, такими как номер лотка и количество копий .
По моему мнению, теперь я должен создать функциональный контакт с принтерами самостоятельно и изменить настройки, особенно номер лотка, а затем вызвать эту функцию перед печатью PDF-файла.каковы ваши предложения?
Моя программа - это приложение windows (C#)

Dave Kreskowiak

Если вы используете внешнее приложение для выполнения печати, у вас нет никакого контроля над его процессом печати и настройками.