我有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);
答案 0 :(得分:1)
您需要创建一个打印模板并提供自己的DEVMODE,并根据特定的打印机,纸张尺寸和方向进行配置。它很棘手,但可以使用来自this excellent blog post by Marc Durdin的信息。您还可以在我的answer中找到有关打印模板的更多信息,以及相关的question关于纸张方向的信息,我首先看到了这些信息。
答案 1 :(得分:0)
据我所知,您无法在服务器端设置或修改浏览器(客户端)属性,对于这种交互性,您应该尝试使用ActiveX,Java或Silverlight解决方案。
其中一个小程序是 jZebra ,我还没有使用它,但您可以在jZebra Tutorial
中找到一些信息另一项建议是,在打印之前,您会显示一个弹出窗口,其中包含有关“如何更改纸张尺寸并将其设为默认值”的说明。