Как заставить Windows Server 2012 R2 распознавать установленный принтер

У меня есть приложение веб-форм, которое создает PDF-файл и отправляет его клиенту. Все было хорошо, пока я не загрузил приложение на Windows Server 2012 R2. Проблема может заключаться в каких-то настройках принтера на сервере (я впервые работаю с сервером).

Проблема в том, что Server 2012 не поддерживает печать Windows в PDF, которую я использовал на локальном компьютере, и она отлично работала.

Я попробовал CutePDF Writer: установил его и установил в качестве принтера по умолчанию в разделе Принтеры и устройства. Когда я запускаю приложение, я получаю следующую ошибку:

System.Drawing.Printing.InvalidPrinterException: No printers are installed

Я попробовал это, и он генерирует PDF, но терпит неудачу, и я получаю сообщение об ошибке, когда пытаюсь открыть PDF:

PrintDocument.PrinterSettings.PrinterName = "CutePDF Writer";

Эта строка возвращает «истину»:

PrintDocument.PrinterSettings.IsDefaultPrinter

в то время как эта строка возвращает «Принтер по умолчанию не установлен»:

PrintDocument.PrinterSettings.PrinterName

Я попробовал это сделать, но возвращает "false": Setting принтер по умолчанию для окон с использованием С#

Пожалуйста помоги!


person Knez Drvene Klupice    schedule 22.07.2016    source источник


Ответы (1)


Ответ пробует другой подход. Я не должен был пытаться работать с виртуальным принтером (я не нашел способа заставить его работать).

Для создания PDF из кода лучше всего использовать iTextSharp.dll. Для этого вам понадобится немного кода. Да, мне пришлось заново реализовывать логику создания и печати отчетов, но на самом деле это было проще, чем предыдущий подход. iText довольно прост и удобен в использовании!

person Knez Drvene Klupice    schedule 12.08.2016