Отправить документ на принтер с веб-страницы - PullRequest
2 голосов
/ 25 марта 2010

У меня есть веб-страница, которая активирует задание печати на принтере. Это работает в среде localhost, но не работает при развертывании приложения на веб-сервере. Я использую класс PrintDocument из пространства имен .net System.Drawing.Print. Я сейчас предполагаю, что принтер должен быть доступен для приложения на удаленном сервере? Любые предложения о том, как мне заставить это работать?

PrintDocument pd = new PrintDocument();
PaperSource ps = new PaperSource();
pd.DefaultPageSettings.PaperSize = 
    new System.Drawing.Printing.PaperSize("Custom", 1180, 850);
pd.PrintPage += new PrintPageEventHandler
                    (this.pd_PrintPage);

// Set your printer's name.  Obtain from
// System's Printer Dialog Box. 
pd.PrinterSettings.PrinterName =
    "Okidata ML 321 Turbo/D (IBM)";


//PrintPreviewDialog dlgPrintPvw = new PrintPreviewDialog();
//dlgPrintPvw.Document = pd;
//dlgPrintPvw.Focus();
//dlgPrintPvw.ShowDialog(); 

pd.Print();

Ответы [ 3 ]

4 голосов
/ 25 марта 2010

Принтер находится на другом компьютере. PrintDocument предназначен для использования в настольных приложениях, а не в веб-приложениях.

Для печати на клиенте вам нужно будет использовать JavaScript, и вы сможете печатать документы только на клиентском компьютере. Я не знаю наверняка, что - это способ печати на клиенте. Возможно, вы сможете отобразить диалоговое окно «Печать», и пользователь сам распечатает файл.

0 голосов
/ 30 июля 2014

У меня были те же проблемы. Мне сказали поместить ваш код в это:

using (WindowsIdentity.GetCurrent().Impersonate())
{
    // code here
}      

Позволяет использовать определенные пользовательские настройки вместо настроек ASP.NET для этого конкретного принтера.

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

0 голосов
/ 09 сентября 2010

Silverlight 4 можно распечатать. Тем не менее, ограничено печатать только 1 страницу должным образом, если включить аргумент HasMorePages, он сходит с ума и наполняет задание на печать бесконечными документами ... В настоящее время я пытаюсь выяснить, почему это так. Здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...