Ошибка win32 имя принтера задано неверно

Справки БК Ошибка при печати

Опубликовано ср, 03/18/2020 — 19:56 пользователем Klifford

Если при попытке распечатать документы в программе «Справки БК» у вас выскакивает ошибка:

Handled Exception:[System.Printing.PrintServerException]: Исключение при создании объекта PrintServer. Ошибка Win32: Имя принтера задано неверно.

Вам нужно закрыть окно печати и войти в настройки (вверху справа первая строчка) и войти в подменю настройки принтера. Далее сравнить сетевой адрес вашего принтера с тем, что указан в программе. Скорей всего они не совпадают, что и вызывает эту ошибку.

Hi, I’m getting this exception when I try to create printserver object.
Here is my code:

PrintServer printServer = new PrintServer(@"\" + printServerName);
PrintQueue printQueue = printServer.GetPrintQueue(printerName);

I’m trying to get the printers from another machine which is running on Windows Server 2012. Same code works fine if I try to access some OS based system.
Any help will be appreciated. Thanks in advance.

Arslan Ali's user avatar

Arslan Ali

17.4k8 gold badges58 silver badges76 bronze badges

asked Apr 9, 2014 at 10:31

Sagar's user avatar

4

I found the answer for this, and i know many others are also looking for this issue.

This issue was occuring due to windows feature/role «Print and Document service» is missing on the system.
This role is required for managing multiple printers or print servers and migrating printers to and from other windows servers.

To add the role Go To Control Panel->Turn windows feature on or off->click on check box «Print and Document Service»->install.

See with network administrator for installing this rule if you unable to add it.

After adding the role you can able to create print server object and get the all the printqueues on respective server.

answered Apr 10, 2014 at 7:10

Sagar's user avatar

SagarSagar

3894 silver badges11 bronze badges

На этой странице собраны часто задаваемые вопросы при работе с программой «Электронные документы — xprint.PLUS».

  • Демонстрация
  • Как это работает
  • Преимущества
  • Документы
  • Цены
  • Вопросы и ответы
  • Скачать
  • Проблема преобразования в XML при печати документа из веб-браузера (1cfresh, 1С в облаке)

  • Не установилось обновление

  • Отсутствует обязательный элемент ‘Подписант’

  • Работа через прокси сервер

  • Принтер xPrint отключен

  • Как проверить электронную подпись

  • Основание передачи (сдачи) / получения (приемки)

  • Для отправки УПД нужно заполнить полномочия подписанта

  • УПД создано в программе МойСклад.

  • Акты и накладные в формате XML

  • Windows терминал сервер

  • Исключение при заполнении свойств объекта PrintQueue. Ошибка Win32: Отказано в доступе.

  • При печати PDF-документа, или печати из веб-браузера пропадает графика.

  • Возникает ошибка при обработке документа



Проблема преобразования в XML при печати документа из веб-браузера. (1С:Фреш)

  • При печати документов из браузера программа не сможет преобразовать их в XML формат. Решением проблемы может быть
    установка тонкого клиента для 1C
    или выгрузка документа в формат .xls и печать из Excel (offline).


Не установилось обновление.

  • Удалите программу через Установкаудаление программ и установите заново.

    Если не помогло:
    Откройте Проводник и введите: %userprofile%AppDataLocalApps2.0
    В Apps2.0 удалите все папки, где есть упоминание xprint (названия папок начинается с «xpri..»).
    Папку Apps2.0Data не трогайте.



Отсутствует обязательный элемент ‘Подписант’.

  • Результат проверки xml-файла на сайте https://www.diadoc.ru/docs/forms/validation-xml сообщает об отсутствии обязательного элемента ‘Подписант’.
    На сообщение не нужно обращать внимания — секция ‘Подписант’ для загрузки документов через веб-интерфейс оператора ЭДО не требуется. Все необходимые поля добавляются при подписании документа на сайте оператора.


Работа через прокси сервер.

  • Необходимо разрешить прямой доступ к https://4docs.ru (порт: 443) и http://nextech.ru


Принтер xPrint отключен.

  • Виртуальный принтер должен работать в режиме «Работать автономно». В диалоге выбора принтера состояние отображается как «Отключен». На это не нужно обращать внимание.
    Если вы изменили настройки и не знаете как их вернуть, то просто удалите xPrint принтер в папке принтеры и перезапустите программу «Электронные документы» — она создаст принтер заново.


Проверка электронной подписи.

  • Для проверки ЭП вы можете воспользоваться

    сервисом 4docs.ru

    ,

    удостоверяющим центром ФГБУ ФКП Росреестра

    или

    порталом государственных услуг

    (подтверждение подлинности ЭП электронного документа. ЭП — отсоединенная, в формате PKCS#7).



Основание передачи (сдачи) / получения (приемки).

  • Поле нужно заполнять с датой. Пример: договор поставки № 01-87 от 29 марта 2017 г.

    Несколько оснований записывайте через запятую.



Для отправки УПД нужно заполнить полномочия подписанта.

  • В «Диадок» достаточно один раз заполнить полномочия. После этого полномочия будут автоматически заполняться при подписании документов.


УПД создано в программе МойСклад.

  • Скачайте наш

    шаблон УПД
    , зайдите в меню «Настройка шаблонов» программы МойСклад и добавьте шаблон. Создавать печатную форму следует в формате Excel. Далее печатать из Excel на xPrint.



Акты и накладные в формате XML

  • Смотрите

    руководство пользователя.



Windows терминал сервер. (1С на сервере)

  • Если вы работаете со своей учетной системой удаленно, то можете запускать ПО «Электронные документы» как на сервере терминалов (доступен удаленный рабочий стол), так и на своем ПК (рекомендуем). В случае запуска на клиентском ПК, на сервере должен быть установлен драйвер Easy Print служб терминалов, а печатать следует на перенаправленный xPrint принтер.

    Если ПО устанавливается на сервер, то проверьте сначала работу ПО под администратором. Затем разрешите пользователям управлять xPrint принтером (Свойства: xPrint/Безопасность разрешить «Управление этим принтером» и «Управление документами»). Удалите c:/4docs, войдите под именем пользователя, установите ПО (права администратора не требуются) и смените папку экспорта в настройках ПО, если пользователей больше одного. ПО обрабатывает только «свои» задания в очереди xPrint принтера, поэтому нельзя запустить программу под администратором, а печатать под пользователем.



Исключение при заполнении свойств объекта PrintQueue. Ошибка Win32: Отказано в доступе.

  • Ошибка возникает при старте программы, если принтер xPrint был создан другим пользователем. Разрешите пользователям управлять xPrint принтером (Свойства: xPrint/Безопасность разрешить «Управление этим принтером» и «Управление документами»). Если пользователь только один, можно очистить очередь, удалить xPrint принтер и перезапустить программу под этим пользователем — программа создаст принтер заново.


При печати PDF-документа, или печати из веб-браузера пропадает графика.

  • Решение проблемы.


Возникает ошибка при обработке документа.

  • Скачайте наш

    тестовый пример УПД
    и распечатайте его на xprint принтере. В папке c:4docsexportxml появится файл. Загрузите файл на сайт оператора ЭДО и проверьте корректность отображения документа.
    Откройте Ваш документ в предварительном просмотре и убедитесь в том, что таблица целиком помещается по ширине на странице, включая крайнюю правую линию. Линии в таблице ровные и без разрывов.

    Сравните шаблоны документов. Проверьте корректность заполнения документа. Если документ заполнен верно, то распечатайте его на Microsoft XPS Document Writer, сохраните под именем error.xps и пришлите на xprint@nextech.ru.


      Частые ошибки:

    • Документ не помещается на странице или слишком сжат.
      Зайдите в настройки печати и укажите МасштабПо ширине страницы. Для 1с : Предварительный просмотрПараметры страницыМасштабПо ширине страницы
    • Не заполнен адрес получателя.
      Для ЭДО адрес является обязательным полем. Для ИП можно заполнить поле частично. Например:101000, Москва.
    • 1с (УТ, КА) не прорисована таблица в колонке А.
      Поправьте печатную форму или обновите 1C.

  • Remove From My Forums
  • Question

  • I’m trying to get the PrintQueue using the code below.

    The problem here is it works fine in Win 7 but fails in Win XP.

                 PrintQueueCollection queues = new System.Printing.PrintServer().GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Connections, EnumeratedPrintQueueTypes.Connections });
                 

                  PrintQueue pQueue = queues.FirstOrDefault(d => d.FullName == SpoolerName);

                  if (pQueue != null)
                     _spooler = new PrintQueue(new System.Printing.PrintServer(), pQueue.Description);

    The error message i get in Win XP is «An exception occurred while populating the properties for the PrintQueue object. Win32 error: The printer name is invalid.»

Answers

  • I’m confused about your code.  When you get the collection of queues you’re newing up an instance of PrintServer.  Later on you do the same thing again to create PrintQueue.  You should probably be creating the server once and reusing it.

    The second thing I don’t understand is that your FirstOrDefault will return back the print queue with the specified name.  Why are you creating a new instance of the queue to assign it to _spooler?  Just assign FirstOrDefault to it. 

    I believe the actual problem is that you’re creating the queue using pQueue.Description rather than name but I’m taking a guess here.  I think if you modify your code to use the returned queue your problem will go away as you already have the object
    you want.

    Michael Taylor
    http://msmvps.com/blogs/p3net

    • Marked as answer by

      Tuesday, May 7, 2013 7:23 AM

  • Remove From My Forums
  • Question

  • I’m trying to get the PrintQueue using the code below.

    The problem here is it works fine in Win 7 but fails in Win XP.

                 PrintQueueCollection queues = new System.Printing.PrintServer().GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Connections, EnumeratedPrintQueueTypes.Connections });
                 

                  PrintQueue pQueue = queues.FirstOrDefault(d => d.FullName == SpoolerName);

                  if (pQueue != null)
                     _spooler = new PrintQueue(new System.Printing.PrintServer(), pQueue.Description);

    The error message i get in Win XP is «An exception occurred while populating the properties for the PrintQueue object. Win32 error: The printer name is invalid.»

Answers

  • I’m confused about your code.  When you get the collection of queues you’re newing up an instance of PrintServer.  Later on you do the same thing again to create PrintQueue.  You should probably be creating the server once and reusing it.

    The second thing I don’t understand is that your FirstOrDefault will return back the print queue with the specified name.  Why are you creating a new instance of the queue to assign it to _spooler?  Just assign FirstOrDefault to it. 

    I believe the actual problem is that you’re creating the queue using pQueue.Description rather than name but I’m taking a guess here.  I think if you modify your code to use the returned queue your problem will go away as you already have the object
    you want.

    Michael Taylor
    http://msmvps.com/blogs/p3net

    • Marked as answer by

      Tuesday, May 7, 2013 7:23 AM

Hi, I’m getting this exception when I try to create printserver object.
Here is my code:

PrintServer printServer = new PrintServer(@"" + printServerName);
PrintQueue printQueue = printServer.GetPrintQueue(printerName);

I’m trying to get the printers from another machine which is running on Windows Server 2012. Same code works fine if I try to access some OS based system.
Any help will be appreciated. Thanks in advance.

Arslan Ali's user avatar

Arslan Ali

17.3k8 gold badges57 silver badges75 bronze badges

asked Apr 9, 2014 at 10:31

Sagar's user avatar

4

I found the answer for this, and i know many others are also looking for this issue.

This issue was occuring due to windows feature/role «Print and Document service» is missing on the system.
This role is required for managing multiple printers or print servers and migrating printers to and from other windows servers.

To add the role Go To Control Panel->Turn windows feature on or off->click on check box «Print and Document Service»->install.

See with network administrator for installing this rule if you unable to add it.

After adding the role you can able to create print server object and get the all the printqueues on respective server.

answered Apr 10, 2014 at 7:10

Sagar's user avatar

SagarSagar

3894 silver badges11 bronze badges

Hi, I’m getting this exception when I try to create printserver object.
Here is my code:

PrintServer printServer = new PrintServer(@"" + printServerName);
PrintQueue printQueue = printServer.GetPrintQueue(printerName);

I’m trying to get the printers from another machine which is running on Windows Server 2012. Same code works fine if I try to access some OS based system.
Any help will be appreciated. Thanks in advance.

Arslan Ali's user avatar

Arslan Ali

17.3k8 gold badges57 silver badges75 bronze badges

asked Apr 9, 2014 at 10:31

Sagar's user avatar

4

I found the answer for this, and i know many others are also looking for this issue.

This issue was occuring due to windows feature/role «Print and Document service» is missing on the system.
This role is required for managing multiple printers or print servers and migrating printers to and from other windows servers.

To add the role Go To Control Panel->Turn windows feature on or off->click on check box «Print and Document Service»->install.

See with network administrator for installing this rule if you unable to add it.

After adding the role you can able to create print server object and get the all the printqueues on respective server.

answered Apr 10, 2014 at 7:10

Sagar's user avatar

SagarSagar

3894 silver badges11 bronze badges

Я не понимаю, почему это НЕ работает:

PrintServer printServer = new PrintServer("\servername");

У меня проблема с инициализацией PrintServer. Вышеупомянутое исключение продолжает появляться, даже если указанный путь принтераServer является допустимым путем. Это сказано, так как я могу перечислить все принтеры с помощью принтераServer.GetPrintQueues и foreach printQueue, чтобы получить соответствующее имя HostingPrintServer.

EnumeratedPrintQueueTypes[] queueTypesArray = new EnumeratedPrintQueueTypes[] 
{
    EnumeratedPrintQueueTypes.Connections,
    EnumeratedPrintQueueTypes.Local,
};
PrintQueueIndexedProperty[] indexPropertyArray = new PrintQueueIndexedProperty[]
{
    PrintQueueIndexedProperty.Name
};

PrintServer printServer = new PrintServer();
PrintQueueCollection queueCollection = printServer.GetPrintQueues(indexPropertyArray, queueTypesArray);

foreach (PrintQueue pq in queueCollection)
{
    if (pq.FullName == printerName)
    {
        this.printServerName = pq.HostingPrintServer.Name;
        this.printerName = pq.Name;
    }
}

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

PrintServerException — «… имя неверно», хотя я могу получить доступ к пути из окон

К вашему сведению, я использую Visual Studio 2010 под управлением Windows XP с двумя подключенными сетевыми принтерами. Принтеры могут выполнять печать без каких-либо проблем с помощью PrintDocument, и принтеры также отображаются в PrintDialog.

Кто-нибудь сталкивался с этой проблемой раньше? Если да, могу ли я узнать, как вы решаете проблему?

Заранее спасибо за миллион.

EDIT:

Только что протестировано с другим «настоящим» серверным принтером, вышеупомянутый метод работает нормально. Считается, что служба Novell iPrint, поведение которой, я не уверен, вызывает проблему. Если кто-нибудь знает больше о том, как получить доступ к серверу печати Novell iPrint с помощью C#, пожалуйста, поделитесь. В настоящее время я все еще ищу решение.

Всем добра. Очередная трабла! Windows 2019

Есть домен, пусть будет только DC1 не суть, написана политика установки принтера по TCP/IP не шарный:

IP принтера: 192.168.0.100

Локальное имя: Kyocera ECOSYS M2040dn

Путь к принтеру: 192.168.0.100

Размещение: пусто

Комменарий: пусто

Предварительно в оснастке: printmanagement.msc установлен драйвер принтера — ставил универсальный для x64 — Kyocera драйвер ставился от администратора домена.

Пользователь, пусть будет testuser имеет права входа на данный RDS (простой RDP сервер без шлюза), при первом входе принтер установился сразу, но спустя около суток пропал, а в журнале отображается запись:

Элемент предпочтения пользователь «192.168.0.100» в объекте групповой политики «DefaultPrinter {7B126BF0-D620-4E7B-87E1-28C38D5E6F10}» не применен по причине ошибки с кодом ‘0x80070709 Имя принтера задано
неверно.’ Эта ошибка была отключена.

Что только не делал. По пути реестра: HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindows в пункте Device добавлял и имя принтера: Kyocera ECOSYS M2040dn и другое имя писал в политике и имя от производителя на вебке принтера
и тд и тп… Толку 0! 


По канону ставить принтера с принт сервера, опубликованные в AD, но есть проблемки со связью в плане далеко и надо поставить принтер напрямую по IP.

Google в помощь выдает 90% из 100% ставить через GPO шарные через публикацию в домене, кое где нашел вот такое собственно: https://docs.microsoft.com/ru-ru/troubleshoot/windows-server/group-policy/group-policy-printer-preferences-not-set-default-printer ничего
не помогает, все та же ошибка, а принтер при этом не ставится.

С GPO все ок, прав хватает, нацеливания нет, в нужном юните, в пользовательском юните, ставил также в раздел ПК, добавлял таргет на ПК, толку 0! Принтер НЕ ставится. Что за магия такая и где что пнуть?

В сервере печати ставил разные драйверы, сносил порты, задавал, делал политику на установку локального принтера с заранее заданными портами, все пофиг!

Принтер который опубликован в AD и ставится в этой же политике по шаре, прекрасно ставится с пол пинка, по TCP/IP принтер СТАВИТСЯ при это руками без проблем, через GPO нет. GPUPDATE / FORCE сделан уже 100 раз после каждого изменения политики
разумеется, безрезультатно!

Пользователя уже сделал Администратором локальным, толку 0. 

ВАЖНЫЙ МОМЕНТ: если я в пункте Путь к принтеру: ставлю для теста не 192.168.0.100, а путь шарного принтера DC, DC1KyoceraM2040 принтера ставится! И ставится как TCP/IP

СПАСИБО!!! Есть хоть какие то соображения на этот счет?

На чтение 5 мин. Просмотров 2.3k. Опубликовано 03.09.2019

Win32 error code : ошибка, которая может возникнуть при попытке печати локально или из служб терминалов.

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

Документ без названия. Блокнот, принадлежащий blin, не смог распечатать на принтере 041hp4050 (перенаправлено 4). Попробуйте распечатать документ еще раз или перезапустите диспетчер очереди печати. ​​Тип данных: RAW. Размер файла спула в байтах: 23044. Количество напечатанных байтов: 0. Общее количество страниц в документе: 1. Количество напечатанных страниц: 0. Клиентский компьютер: ноутбук. Код ошибки Win32, возвращенный процессором печати: 5. Доступ запрещен.

Это особенно частая проблема для платформ Windows Server. Это может быть связано с драйвером принтера, недостаточной оперативной памятью или с диспетчером очереди, получающим недопустимые данные.

Диспетчер очереди печати Windows обычно является источником этой проблемы. Ниже приведено несколько возможных решений проблемы « Код ошибки Win32 ».

Содержание

  1. Наличие ошибок Win32 на вашем компьютере? Вот как вы можете их исправить
  2. 1. Запустите средство устранения неполадок принтера
  3. 2. Назначьте разрешение диспетчеру очереди печати
  4. 3. Перезапустите диспетчер очереди печати.
  5. 4. Очистите каталог диспетчера очереди печати.
  6. 5. Установите новый драйвер принтера

Наличие ошибок Win32 на вашем компьютере? Вот как вы можете их исправить

  1. Запустите средство устранения неполадок принтера
  2. Назначить разрешение для диспетчера очереди печати
  3. Перезапустите диспетчер очереди печати
  4. Очистить каталог диспетчера очереди печати
  5. Установите новый драйвер принтера

1. Запустите средство устранения неполадок принтера

Средство устранения неполадок принтера, включенное в Windows, – это первое, что вы должны открыть, чтобы исправить проблемы с принтером. Это не всегда помогает, но, тем не менее, может устранить многочисленные проблемы с принтером.

Диспетчер очереди печати – одна из вещей, которую проверяет средство устранения неполадок. Вот как вы можете открыть средство устранения неполадок печати в Windows 10.

  • Нажмите кнопку Cortana и введите «устранение неполадок» в поле поиска.
  • Нажмите «Устранение неполадок», чтобы открыть окно непосредственно ниже.

  • Выберите «Принтер» и нажмите кнопку «Запустить средство устранения неполадок , чтобы открыть окно, расположенное ниже.

  • Тогда вам также нужно выбрать принтер для устранения неполадок, если у вас есть несколько принтеров. Выберите принтер и нажмите кнопку Далее .

– ТАКЖЕ ПРОЧИТАЙТЕ: 6 лучших программ для управления принтером для оптимизации производительности

2. Назначьте разрешение диспетчеру очереди печати

В частности, это исправление службы терминалов для ошибки « код ошибки Win32 ». Это разрешение использует служебную программу командной строки Cacls.exe для назначения разрешения диспетчеру очереди печати. Вы можете сделать это следующим образом.

  • Сначала откройте командную строку от имени администратора.
  • Введите C “C:” w/o ’в командной строке и нажмите клавишу Enter.

  • Введите «CDWindowsSystem32Spool», чтобы перейти в папку «Спул», а затем нажмите кнопку «Ввод».

  • Введите ‘Cacls.exe ПРИНТЕРЫ/e/g users: C’ в окне подсказки и нажмите клавишу возврата.

  • Затем перезапустите ОС Windows.

ТАКЖЕ ЧИТАЙТЕ: как исправить проблемы с печатью в Windows 10

3. Перезапустите диспетчер очереди печати.

В журнале просмотра событий об ошибке « Код ошибки Win32 » указывается, что необходимо перезапустить диспетчер очереди печати. Так что это еще одно потенциальное решение, подтвержденное некоторыми для работы. Вот как вы можете перезапустить спулер в Windows.

  • Нажмите клавишу Win + R, чтобы открыть Run.
  • Введите “cmd” в текстовом поле “Выполнить”, а затем нажмите кнопку ОК .
  • Введите «net stop spooler» в окне командной строки и нажмите Enter, чтобы отключить службу диспетчера очереди печати.

  • Введите «net start spooler» и нажмите клавишу «Return», чтобы перезапустить службу.

4. Очистите каталог диспетчера очереди печати.

  • Если приведенное выше разрешение не помогает, вы можете сделать еще один шаг, очистив каталог спулера. Сначала остановите службу диспетчера очереди печати через командную строку, как описано выше.
  • Затем введите «del% systemroot% System32spoolprinters */Q» в окне подсказки и нажмите клавишу «Return».

  • Перезапустите спулер, введя «net start spooler» в командной строке.

5. Установите новый драйвер принтера

Так как ошибка « Win32 error code » может быть связана с драйвером принтера, его замена на свежую и обновленную также может решить проблему.

Вы можете загрузить новый драйвер с веб-сайта производителя принтера.Вот как вы можете установить новый драйвер принтера в Windows:

  • Сначала введите «Системная информация» в поле поиска Windows. и затем выберите, чтобы открыть System Info.
  • Нажмите Сводная информация о системе в окне «Сведения о системе», в котором указаны сведения о типе системы, указывающие, является ли ваш ноутбук или компьютер 64 (x64) или 32-разрядным (x86). Эта информация понадобится вам для загрузки совместимого драйвера принтера.

  • Вам также понадобится информация о модели принтера, которая обычно указана на принтере. Если нет, обратитесь к руководству по эксплуатации принтера.
  • Затем откройте веб-сайт производителя вашего принтера.
  • Откройте раздел загрузки или драйверов на веб-сайте производителя принтера.
  • Введите модель вашего принтера в поле поиска драйверов сайта или выберите его в раскрывающемся меню.
  • Затем загрузите обновление драйвера принтера. Убедитесь, что 64- или 32-разрядный драйвер подходит для вашей платформы.

  • Нажмите кнопку Загрузить , чтобы сохранить драйвер принтера в Windows.
  • После загрузки драйвера нажмите Запустить в диалоговом окне Загрузка завершена. После этого вам может понадобиться извлечь некоторые файлы в папку.
  • Установите драйвер принтера через диспетчер устройств. Нажмите горячую клавишу Win + R, чтобы открыть Run, и введите «devmgmt.msc», чтобы открыть окно, расположенное ниже.

  • Нажмите правой кнопкой мыши на свой принтер в списке и выберите Обновить драйвер , чтобы открыть окно ниже.

  • Выберите параметр Просмотреть мой компьютер для поиска драйверов и нажмите Разрешить выбирать из списка драйверов устройств на моем компьютере .

  • Нажмите кнопку Иметь диск и нажмите Обзор , чтобы выбрать папку, в которую вы распаковали файлы драйвера.
  • Нажмите INI-файл в извлеченной папке драйвера и нажмите кнопку Открыть .
  • Нажмите ОК в окне «Установить с диска».

Я пытаюсь показать диалог печати перед печатью в приложении WPF. Я использую образец кода Microsoft из этой ссылки

// Create the print dialog object and set options
PrintDialog pDialog = new PrintDialog();
pDialog.PageRangeSelection = PageRangeSelection.AllPages;
pDialog.UserPageRangeEnabled = true;

// Display the dialog. This returns true if the user presses the Print button.
Nullable<Boolean> print = pDialog.ShowDialog();

Он сбой в последней строке со следующим исключением:

Поставщику PrintTicket не удалось привязать принтер. Ошибка Win32: имя принтера недопустимо.

Я попытался найти решение, и два, которые предлагают люди, устанавливают функцию Printer Server и переключаются на любую сборку ЦП, но ни один из них не работал в моем случае.

12 фев. 2015, в 19:06

Поделиться

Источник

1 ответ

Я создал еще один пустой проект, только с кодом от Microsoft, и он работал нормально. Я начал сравнивать две настройки проекта, и они были идентичны. В конце концов это оказалось следующим параметром, вызывающим проблему:

Debug-> Исключения… -Common Исключения для языка Runtime

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

Eternal21
12 фев. 2015, в 16:33

Поделиться

Ещё вопросы

  • 0IOS html css Z-Index и абсолютная позиция не работают для перекрывающихся DIV
  • 0Добавить параметр в locationChangeStart
  • 1Рандомизация быстрой сортировки в python, проблема рекурсии
  • 0Как работает Facebook / Gmail «выход с других устройств»?
  • 0jQuery анализирует xml и группирует по определенному атрибуту
  • 0Строка C ++, присваивающая значения функции at (int)
  • 1Заполнение информационного кадра pandas с увеличением смещения столбца для каждой строки
  • 1Каждый из next () и list () перебирает генератор с изменяемым объектом по-разному
  • 1запустить команду python с псевдонимом в командной строке, например, npm
  • 0Функция AngularJS ng-click не работает после содержимого информационного окна $ compile map
  • 0плагин проверки jquery, отображающий сообщение об ошибке в IE9
  • 1определение типа данных в Python
  • 1Вектор Drawable внутри Layer-List растягивается
  • 1Тип программы уже присутствует: com.android.common.constant.HttpConstants
  • 1Определить предмет, объект, глагол в английском предложении?
  • 0Конвертировать плоский массив PHP в многомерный массив
  • 0Как сгенерировать исключение при несоответствии данных
  • 1Какая разница между решениями проблемы «текстовая коммуникация не разрешена»
  • 0Как я могу прочитать несколько данных, используя strcpy
  • 1Сигнал переподключается каждые 2 секунды, даже если сервер работает
  • 1MediaPlayer проблема с Android
  • 0C ++ store количество раз, когда main называется [closed]
  • 0У меня ошибка LNK2019: нерешенная внешняя ошибка символа (небольшой код для просмотра)
  • 1Как контролировать отображение окон tkinter Toplevel?
  • 0angular ng-selected, выберите текущий родительский $ index
  • 0Qt / C ++ QTcpSocket вызывает утечку памяти, не знаю почему
  • 0ошибка компиляции в src / libdyld / MachOObject.cpp; составление дорогая
  • 1Отсутствует метод getRequestBuilder в классе RemoteMessageProto
  • 1используя python concurrent.futures представьте с нумерацией процессов
  • 0NumberFormatException: для входной строки: «XXX, XX» в TextField, связанной с локалью
  • 1Lightinject — Обнаружена рекурсивная зависимость
  • 0cv :: putText в IplImages
  • 0AngularJS Directive Countup.JS получить данные из модели
  • 0SQL-запрос для поиска общих элементов в списках столбцов между таблицей и указанными критериями?
  • 0Smarty, проходящий через массив
  • 0Почему javascript (jquery), если операторы не работают, как операторы php if? И что такое решение?
  • 0Laravel 5.5 Получить порядок сообщений по сумме голосов
  • 1Libusb Java — асинхронное чтение с устройства
  • 1Преобразование обратных вызовов для цикла for и рекурсии в обещания
  • 0MySQL оператор не упорядочивает сумму нескольких столбцов должным образом
  • 0показывать логотип в html без указания URL в источнике
  • 1xna c # перехватить и отменить кнопку закрытия окна (x) и Ctrl F4
  • 0невозможно отправить изображение base 64 на сервер с угловым js
  • 1Подсчет символа «е»
  • 1Добавление ключа в словарь объектов класса при создании элемента подкласса — Python 3+
  • 1Соединяйте строки без повторения разделителя
  • 1Использование глобальных обработчиков исключений и локальных
  • 0Допустимо ли открывать журнал ошибок до тех пор, пока приложение работает?
  • 1Предварительная обработка Sklearn Imputer, когда в столбце отсутствуют значения
  • 1Ошибка типа: объект ‘module’ не вызывается: модуль Calender

Сообщество Overcoder

Понравилась статья? Поделить с друзьями:
  • Ошибка win32 api error 126
  • Ошибка win 7 с usb
  • Ошибка win 7 64 bit
  • Ошибка win 10 whea uncorrectable error
  • Ошибка win 10 system service exception