Как вызвать диалог печати Windows со стороны сервера (asp.net)? - PullRequest
0 голосов
/ 11 июля 2009

Я хочу сгенерировать файл PDF на стороне сервера, а затем в ответ хочу отправить этот файл (buffer, fileName - что угодно может работать) и показать диалоговое окно печати, чтобы попросить пользователя напечатать сгенерированный файл PDF.

Я попробовал что-то вроде ниже. Но это не вызывает диалоговое окно window.print ().

   public static void ForcedPrint(HttpResponse response, byte[] buffer, string fileName, string fileExtension) {
      response.Clear();
      response.Buffer=true;
      response.Write("<script>window.print();</script>");
      response.Charset="";
      response.Cache.SetCacheability(HttpCacheability.NoCache);
      response.ContentType="application/pdf";
      response.BinaryWrite(buffer);
      response.Flush();
      response.End();
    }

Может кто-нибудь помочь мне с этим? Функция, которую я ищу, заключается в том, что я должен иметь возможность создавать PDF-файл на сервере, и в ответ пользователь должен получить диалоговое окно для печати сгенерированного файла.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 11 июля 2009

Насколько мне известно, вы не можете сгенерировать команду печати для браузера на сервере. Максимум, что вы можете сделать, это сгенерировать javascript, который заставит его всплыть с диалоговым окном печати (window.print()), но это не поможет вам в том, что вы пытаетесь сделать.

Просто размышления, но вы можете попытаться сгенерировать страницу с iframe, которая указывает на файл PDF, и на базовой странице есть javascript, который говорит iframe о печати?

Надеюсь, это поможет,

Дарко

0 голосов
/ 12 июля 2009

Вам нужно встроить PDF в HTML-документ, скажем, в div с именем thePDF и в коде JavaScript в документе, вам нужно вызвать

thePDF.printWithDialog()

Появится диалоговое окно, которое будет диалоговым окном печати плагина Adobe Reader, а не диалоговым окном печати браузера; это позволит выбрать страницы и т. д. перед печатью.

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