Страница 1 из 1

Печать отчёта в MVC 3(4) на принтере клиента без показа окна

Добавлено: 16 мар 2013, 02:23
DTri
Доброго времени суточек!!!

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

Печать отчёта в MVC 3(4) проекте из браузера на принтере клиента без показа окна предпросмотра и окна диалога принтера на принтере по умолчанию клиента.

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

..\Google\Chrome\Application\chrome.exe --kiosk --disable-print-preview --disable-print-preview

Re: Печать отчёта в MVC 3(4) на принтере клиента без показа

Добавлено: 18 мар 2013, 14:35
Vladimir
Здравствуйте,

Печать без показа окна вьювера возможна. Для этого можно использовать приведённый ниже код:

Печать в PDF:

Код: Выделить всё

        public ActionResult Print()
        {
            StiReport report = new StiReport();
            report.Load(Server.MapPath("~/Content/MyReport.mrt"));
            report.Render(false);

            MemoryStream stream = new MemoryStream();

            StiPdfExportSettings settings = new StiPdfExportSettings();
            settings.AutoPrintMode = StiPdfAutoPrintMode.Dialog;

            StiPdfExportService service = new StiPdfExportService();
            service.ExportPdf(report, stream, settings);

            this.Response.Buffer = true;
            this.Response.ClearContent();
            this.Response.ClearHeaders();
            this.Response.ContentType = "application/pdf";
            //this.Response.AddHeader("Content-Disposition", "attachment; filename=\"report.pdf\"");
            this.Response.ContentEncoding = Encoding.UTF8;
            this.Response.AddHeader("Content-Length", stream.Length.ToString());
            this.Response.BinaryWrite(stream.ToArray());
            this.Response.End();

            return View();
        }
Печать в HTML:

Код: Выделить всё

        public ActionResult Print()
        {
            StiReport report = new StiReport();
            report.Load(Server.MapPath("~/Content/MyReport.mrt"));
            report.Render(false);

            MemoryStream stream = new MemoryStream();

            StiHtmlExportSettings settings = new StiHtmlExportSettings();
            settings.AddPageBreaks = true;

            StiHtmlExportService service = new StiHtmlExportService();
            service.ExportHtml(report, stream, settings);

            StreamReader reader = new StreamReader(stream);
            stream.Position = 0;
            string html = reader.ReadToEnd();
            html = html.Replace("<body>", "<body onload='window.print();'>");

            this.Response.Buffer = true;
            this.Response.ClearContent();
            this.Response.ClearHeaders();
            this.Response.ContentType = "text/html";
            //this.Response.AddHeader("Content-Disposition", "attachment; filename=\"report.html\"");
            this.Response.ContentEncoding = Encoding.UTF8;
            this.Response.AddHeader("Content-Length", html.Length.ToString());
            this.Response.Write(html);
            this.Response.End();

            return View();
        }
Указанный выше код отправляет построенный и экспортированный отчёт на печать PDF плагину либо прямо на принтер, используя Javascript.

Вы можете протестировать Trial версию нашего продукта перед покупкой.

Спасибо.