1

c# で webbrowser コントロールを使用して html ファイルを印刷しています。現在のナビゲーター (Firefox または chrome) で html ファイルを開くと、私のページは「素晴らしい」ものであり、表示どおりに正確に印刷する必要があります。しかし、C# で Web ブラウザー コントロールを使用すると、Web ブラウザーが "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

実際、問題は Internet Explorer のオプションにありました。実際、印刷プレビューの設定では、50px の余白がありましたが、それを削除する必要がありました。この x/ で多くの時間を無駄にしました。なぜ私がその奇妙な設定をしたのか理解できません。そのコンピューターで IE を使用したことはありません。ええと、ありがとうノゼラティオ。

于 2013-09-30T14:00:44.953 に答える
1

この MSKB 記事は、ヘッダー/フッターに役立つはずです。レンダリングの問題に関しては、解決したと思いますが、別の質問FEATURE_BROWSER_EMULATIONへのコメントですでに提案しました。ブラウザ エミュレーションが実際に機能することを確認しましたか? その場合、次のように for 、およびor forが表示されます (IE のバージョンによって異なります)。これが機能するには、ドキュメントに と の両方の宣言が必要です。CSS1CompactcompatMode109documentMode<!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を実装できます。これにより、ヘッダー、マージン、列などを完全に制御できます。この機能は柔軟ですが、実装するのは簡単ではありません。関連リソース:

于 2013-09-30T10:23:06.780 に答える