1

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

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

但这并不能解决问题。

4

2 回答 2

1

这篇 MSKB 文章应该对页眉/页脚有所帮助。关于渲染问题,我希望FEATURE_BROWSER_EMULATION已经解决了这些问题,但我已经在对你的另一个问题的评论中提出了这一点。您是否验证过浏览器仿真确实有效?如果是这样,下面应该显示CSS1CompactforcompatMode10or 9for 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 打印模板。这将提供对标题、边距、列等的完全控制。此功能很灵活,但实现起来并不简单。一些相关资源:

于 2013-09-30T10:23:06.780 回答
1

事实上,问题出在我的 Internet Explorer 选项上。事实上,在打印预览的设置中,我有 50px 的边距,我只需要删除它。我在这个 x/ 上浪费了很多时间。我不明白为什么我有那些奇怪的设置,我从未在那台电脑上使用过 IE。好吧,谢谢诺塞拉蒂奥。

于 2013-09-30T14:00:44.953 回答