2011-11-09 17 views
0

WebBrowserコントロールからhtmlを取得しようとしていますが、入力要素の値属性もページに含める必要があります。WindowsフォームWebBrowserコントロール:DocumentTextとDocument.Body.OuterHtml

webBrowser.DocumentTextを使用すると、最初に読み込まれたページの完全なHTMLが取得されます。入力フィールド値は含まれません。

私はwebBrowser.Document.Body.OuterHtmlを使用している場合は、私はので、私はスタイルシートへのリンクを取得することができます必要があります()の他のコンテンツ、値を取得ではなく、など

クリーンはありますWebBrowserから現在の状態のDOMの完全なHTMLを取得するには信頼できる方法ですか? HTMLをライブラリに渡してPDFにレンダリングするので、WebBrowserコントロールからPDFにプログラムで保存するための提案も評価されます。

おかげ

答えて

1

あなたがあなたの顧客のネットワークに必要なプリンタドライバを展開する余裕がある場合はページを解析せずに、XPSまたはPDFプリンタにドキュメントを印刷するには、いくつかのundocumented wayschanging registryundocumented dll export)があり、それが、あります。

Webページを解析したい場合は、documentElement.outerHTMLはあなたに完全な正規化された文書を与える必要がありますが、ないリンクimagescriptまたはstylesheetファイル。ページを解析し、要素を列挙し、要素の種類をチェックし、追加のリソースとしてdigging the WinInet cacheまたはdownloadingの前にリソースのURLを取得する必要があります。 documentElementプロパティを取得するには、Windowsフォームを使用する場合はHtmlDocument.DomDocumentをmshtml.IHTMLDocument2にキャストするか、WPFを使用する場合はWebBrowser.Documentをmshtml.IHTMLDocument2にキャストする必要があります。 Ajaxコードの実行が終了するまで待つ必要がある場合は、DocumentCompleteイベントが発生したときにタイマーを開始します。

この段階では、テンプレートを使用してレポートを生成するためにHTML DOMを解析して必要なデータを取得するため、Microsoft Wordなどのレポートエンジンでサポートされている他の形式を生成するオプションが常にあります。非常にまれに、HTMLを解析する必要があります。たとえば、各ページにカスタマイズされたヘッダーとフッターを追加せずに長い表を印刷するなどです。つまり、長いテーブルがない場合は、Convert HTML to PDF in .NETをチェックして、推奨されるソフトウェア/コンポーネントのどれが対象のWebサイトに最も適しているかをテストできます。

関連する問題