Документ PDF всегда отправляется на принтер по умолчанию, несмотря на выбор другого принтера в диалоговом окне печати - PullRequest
1 голос
/ 19 января 2012

Мне нужно, чтобы пользователи wpf-приложения могли выбирать принтеры при печати определенного файла .pdf. Я могу заставить его напечатать, но он всегда идет на принтер по умолчанию, независимо от того, что я делаю. Большинство документов для этого приложения должны идти на черно-белый принтер по умолчанию. Этот конкретный документ необходимо для цветного принтера. Когда я запускаю этот код, отображается диалоговое окно печати, но, несмотря на выбор принтера, который не является принтером по умолчанию, задание печати всегда отправляется на принтер по умолчанию.

    private void PrintRedLightGreenLightFile()
    {
        PrintDialog pd = new PrintDialog();

            pd.ShowDialog();
            ProcessStartInfo info = new ProcessStartInfo();
            info.FileName = this.redlightgreenlightfilepath;
            info.Verb = "PrintTo";
            info.CreateNoWindow = true;
            info.WindowStyle = ProcessWindowStyle.Hidden;
            Process.Start(info);        }

1 Ответ

0 голосов
/ 19 января 2012

Вместо запуска отдельного процесса печати следует использовать метод PrintDocument в PrintDialog, как описано в MSDN (см. Разделы «Примеры»).

Помимо этого, информация о целевом принтере может быть найдена в свойстве PrintDueog PrintQueue и должна быть каким-то образом сообщена вашему процессу печати. ​​

...