2013-09-30 92 views
1

我在c#中使用webbrowser控件来打印html文件。当我用当前的导航器(Firefox或Chrome)打开html文件时,我的页面“非常好”,我必须确切地打印它,看看它。但是当我在c#中使用webbrowser控件时,它就像webbrowser添加一个“margin-left”属性,并且我的文档不居中。http://imgur.com/q7ovEA1我也想删除这个“page 1 of 1”和标题。 我知道,在C#中使用Internet Explorer浏览器控件,这就是为什么我说这在我的HTML文件:webbrowser在打印html文件时添加一个页边空白

http-equiv="X-UA-Compatible" content="IE=edge 

但这并不解决问题。

回答

1

This MSKB article应该有助于页眉/页脚。关于渲染问题,我期望FEATURE_BROWSER_EMULATION已经解决了这些问题,但我已经在another question of yours的评论中提出过。你是否证实浏览器仿真实际上起作用?如果是这样,CSS1Compact对于compatMode109对于documentMode(取决于您的IE版本)应该显示如下。该文件必须同时<!DOCTYPE html><meta http-equiv="X-UA-Compatible" content="IE=edge">声明这个工作:

dynamic document = this.webBrowser.Document.DomDocument; 
dynamic navigator = document.parentWindow.navigator; 
var info = 
    "\n navigator.userAgent: " + navigator.userAgent + 
    "\n navigator.appName: " + navigator.appName + 
    "\n document.documentMode: " + document.documentMode + 
    "\n document.compatMode: " + document.compatMode; 
MessageBox.Show(info); 

将帖子控制打印布局超出@media CSS,你可以实现自己的Internet Explorer Print Template。这将提供对标题,边距,列等的完全控制。该功能是灵活的,但不能实施。一些相关的资源:

+0

Visual Studio在第一行返回一个NullPointerException:/ – Keenegan

+0

在[DocumentCompleted](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.documentcompleted)上运行此代码。 aspx)事件,当'webBrowser.Document'确实存在时。 – Noseratio

+0

好的,这里是我有http://imgur.com/GdFdBEU – Keenegan

1

其实这个问题与我的Internet Explorer选项。事实上,在打印预览的设置中,我有50px的保证金,我只是不得不删除它。我在这个x /上浪费了很多时间。我不明白为什么我有那些奇怪的设置,我从来没有在那台电脑上使用IE。恩,谢谢Noseratio。