.net 以横向表示形式打印 HTML 文档

本文关键字:式打印 HTML 文档 表示 横向 net | 更新日期: 2023-09-27 18:33:30

我有HTML从SSRS检索到的byte[]文档,我想以横向表示C5纸张格式打印它。我使用 IE 进行打印,但我不知道如何告诉他以横向 C5 模式打印我的文档。建议?

var envelope = proxy.Render(
                    Format, DevInfo, out extension, out mimeType, out encoding, out warnings, out streamIDs);
                using (FileStream fStream = File.Create(string.Format(@"printtmp'envelope_{0}.html", i)))
                {
                    fStream.Write(envelope, 0, envelope.Length);
                }
                var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, string.Format(@"printtmp'envelope_{0}.html", i));
                var ie = new InternetExplorer();
                ie.PrintTemplateTeardown += disp =>
                    {
                        File.Delete(path);
                        ie.Quit();
                    };
                ie.DocumentComplete += (object disp, ref object url) =>
                {
                    ie.ExecWB(OLECMDID.OLECMDID_PRINT, OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, Type.Missing, Type.Missing);
                };
                ie.Navigate(path, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

.net 以横向表示形式打印 HTML 文档

您需要创建一个打印模板并提供您自己的 DEVMODE,该模式针对特定的打印机、纸张大小和方向进行了配置。这很棘手,但可行,请使用Marc Durdin的这篇优秀博客文章中的信息。您还可以在我回答您关于纸张方向的相关问题中找到有关打印模板的更多信息,这是我首先看到的。

据我所知,您无法从服务器端设置或修改浏览器(客户端)属性,对于这种交互性,您应该尝试ActiveX,Java或Silverlight解决方案。

一个小程序是jZebra,

我没有使用过它,但你可以在jZebra教程中找到一些信息

另一个建议是在打印之前显示一个弹出窗口,其中包含有关"如何更改纸张大小并将其设为默认值"的说明。