SymbioticKaos Ответов: 1

Печать сервиса WCF


Привет,

Мне было поручено создать приложение WCF, размещенное в качестве службы windows, чтобы принять поток данных, а затем скомпилировать его в файл и распечатать файл на указанном принтере в нашей сети. Большинство аспектов этого приложения уже завершены, однако я борюсь с методом печати. Всякий раз, когда я пытаюсь вызвать метод для принтера, я получаю следующую ошибку:
{"Настройки доступа к принтеру '\\\UKSPPS01\\UKSPPRN024' недопустимы."}
Я посмотрел в интернете на эту ошибку, и единственный ответ, который я могу найти, - это установить принтер локально, однако это не совсем жизнеспособный вариант с этой службой. Есть ли у кого-нибудь лучшие предложения о том, как преодолеть это или как распечатать файл на сетевом принтере, не используя систему?Метод рисования, который я использую.
Код для печати очень прост:
streamToPrint = new StreamReader(filePath);
try
{

        printFont = new Font("Arial", 10);
        PrintDocument pd = new PrintDocument();
        pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
        pd.PrinterSettings.PrinterName = @"\\UKSPPS01\UKSPPRN024";
        // Print the document.
        pd.Print();
}
finally
{
    streamToPrint.Close();
}

1 Ответов

Рейтинг:
12

Rai Pawan

Вам потребуется иметь учетную запись домена, под которой работает служба windows, чтобы получить доступ к принтеру, доступному в сети.

Проверьте эту ссылку http://stackoverflow.com/questions/8009558/printing-in-windows-service-using-background-worker[^]


SymbioticKaos

Спасибо за ваш пост, это очень хорошее решение, и я протестировал его против своего приложения, и оно отлично работает. Я также нашел еще одно решение, опубликованное на Stack Overflow, которое можно найти здесь http://stackoverflow.com/questions/2722327/error-settings-to-access-printer-printername-are-not-valid-when-printing-fro

Rai Pawan

добро пожаловать
-Паван