webbrowser在打印html文件时添加一个margin-left

时间:2013-09-30 09:29:14

标签: c# winforms webbrowser-control

我在c#中使用webbrowser控件来打印html文件。当我用我当前的导航器(Firefox或chrome)打开html文件时,我的页面“很棒”,我必须完全打印出来,看看它是怎么回事。但是当我在c#中使用webbrowser控件时,就像webbrowser添加了一个“margin-left”属性,而我的文档没有居中http://imgur.com/q7ovEA1我还想删除这个“第1页的第1页”和标题。 我知道c#中的webbrowser控件使用的是Internet Explorer,这就是我在html文件中添加它的原因:

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

但这并没有解决问题。

2 个答案:

答案 0 :(得分:1)

This MSKB article应该有助于页眉/页脚。关于渲染问题,我希望FEATURE_BROWSER_EMULATION能够解决这些问题,但我已经在another question of yours的评论中提出了建议。您确认浏览器仿真确实有效吗?如果是,则以下内容应为CSS1Compact显示compatMode10显示9documentMode(具体取决于您的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。这将提供对标题,边距,列等的完全控制。此功能非常灵活,但不能实现。一些相关资源:

答案 1 :(得分:1)

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