WebBrowser打印设置

5
我该如何使用WebBrowser控件改变我的HTML文档方向(横向)以便打印呢?
var browser = new WebBrowser();
browser.DocumentCompleted += (sender, args) =>
    {
        var ws = sender as WebBrowser;
        //change paper size and orientation
        ws.Print();
    };
browser.Navigate(path);

在打印之前,我需要将纸张大小格式更改为C5并将方向更改为横向。如何在没有对话框的情况下完成这个操作?


哪个WebBrowser控件?WPF? - John Saunders
1个回答

8

如果你想要控制HTML打印布局,除了使用@media CSS之外,还需要在WebBrowser(包括WinForms和WPF)中实现自己的Internet Explorer Print Template。这将提供对标题、边距、列等的完全控制。

具体来说,你需要使用TemplatePrinter.orientation。它没有得到充分的文档支持,但是确实有效。当导航到res://ieframe.dll/preview.dlg时,可以查看标准IE打印模板的源代码。

其他相关资源:


感谢您提供的链接:https://support.microsoft.com/en-us/kb/267240。您似乎对从IE打印很了解。那么,您是否知道 - 那个链接实际上与这个链接相矛盾:https://support.microsoft.com/en-us/kb/236777,基本上说没有办法通过编程方式更改IE中的页眉/页脚。因此,我很好奇,既然第一页清楚地显示了如何做到这一点,是否有办法:A)更改页面边距,并且B)在使用OLECMDEXECOPT_DONTPROMPTUSER时指定打印机? - c00000fd
@c00000fd,A和B可能不是那么直接。您需要自己编写打印模板-请检查其他链接,特别是这个 - noseratio - open to work
哦,Delphi。人们还在用它吗?你的库里有任何 C/C++(或至少是 C#)的链接吗?我基本上想允许从WebControl打印,并允许程序内打印定制(无需IE用户界面)。但这方面的资料非常不全... - c00000fd
我这里没有可以发布的C++代码。在某种程度上,这些东西是有文档记录的:https://msdn.microsoft.com/zh-cn/library/aa753358(v=vs.85).aspx - noseratio - open to work
打印机设置存储在注册表中,因此您可以将其编辑为所有全局打印的默认值。 https://www.scriptinghouse.com/2022/05/the-hidden-settings-of-internet-explorer-page-margin-fonts-default-page.html - mjb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接