网络浏览器在打印 HTML 文件时添加左边距
本文关键字:添加 左边 文件 HTML 浏览器 打印 网络 | 更新日期: 2023-09-27 18:33:21
我正在使用 c# 中的 Web 浏览器控件来打印 html 文件。当我使用当前的导航器(Firefox 或 chrome(打开 html 文件时,我的页面"很棒",我必须准确地打印它。但是当我在 c# 中使用 Web 浏览器控件时,就像 Web 浏览器添加一个"左边距"属性,并且我的文档没有居中 https://i.stack.imgur.com/OTd1a.jpg 我还想删除这个"第 1 页,共 1 页"和标题。我知道 c# 中的 Web 浏览器控件使用 Internet Explorer,这就是我在 html 文件中添加它的原因:
http-equiv="X-UA-Compatible" content="IE=edge
但这并不能解决问题。
这篇 MSKB 文章应该对页眉/页脚有所帮助。关于渲染问题,我希望FEATURE_BROWSER_EMULATION
已经解决了这些问题,但我已经在您的另一个问题的评论中提出了这一点。您是否验证了浏览器仿真确实有效?如果是这样,以下内容应显示 compatMode
的CSS1Compact
,以及documentMode
的10
或9
(取决于您的 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);
[编辑] 要控制 CSS 之外@media打印布局,您可以实现自己的 Internet Explorer 打印模板。这将提供对标题、边距、列等的完全控制。此功能很灵活,但实现起来并不复杂。一些相关资源:
- 超越打印预览:Internet Explorer 5.5 的打印自定义
- 打印模板,第一部分
- 使用 Microsoft WebBrowser 控件和 ShowHTMLDialogEx 揭开打印的神秘面纱
- 添加对在基于对话框的 MFC 应用程序中打印和预览 HTML 的支持
事实上,问题出在我的IE浏览器选项上。实际上,在打印预览的设置中,我有50px的边距,我只需要将其删除即可。我在这个x/上浪费了很多时间。我不明白为什么我有那些奇怪的设置,我从来没有在那台计算机上使用过IE。好吧,谢谢鼻子比。