我需要将WebBrowser控件中的文档打印为横向(不显示PrintPreview并更改默认的打印机页面方向)。
我试过了:
TemplatePrinter 这是我的模板template.html:
<HTML XMLNS:IE>
<HEAD>
<?IMPORT NAMESPACE="IE" IMPLEMENTATION="#default">
<TITLE>Landscape</TITLE>
</HEAD>
<BODY>
<IE:TEMPLATEPRINTER id="Printer"/>
<SCRIPT Language="JavaScript">
Printer.orientation="landscape";
</SCRIPT>
</BODY>
</HTML>
我尝试使用它:
mshtml.IHTMLDocument2 doc = wbReport.Document.DomDocument as mshtml.IHTMLDocument2;
doc.execCommand("print", false, "template.tpl");
创建注册码&#34;方向&#34;有价值&#34; 2&#34;在HKCU \ Software \ Microsoft \ Internet Explorer \ PageSetup
添加样式:
<style type="text/css" media="print">
@page
{
size: landscape;
margin: 2cm;
}
</style>
但我仍然将我的HTML打印为肖像。 也许有更好的解决方案将html打印为横向,或者在使用TemplatePrinter时出现错误?
答案 0 :(得分:1)
在搞乱注册表之后,尝试在IE中使用打印模板以及其他各种方法(没有一种方法可行)我已经制作了一些有点麻烦的解决方法。
我扩展了WebBrowser控件并创建了一个新的打印预览方法,在其中我有方法来传递ALT + L组合以启用横向视图:
Name
您需要做的只是实例化对象,像标准WebBrowser一样加载文档并调用_ShowPrintPreviewDialog。
请注意,您可能希望在设置横向视图后停止计时器。
HTH有同样问题的人。