2

Winforms Web ブラウザー コントロールを使用して、SQL DB テーブルに格納されている HTML コンテンツを表示しています。ただし、私のコンテンツの一部は、バイナリ データとして SQL DB に保存し、Webbrowser コントロールにフィードする予定の PDF です。バイナリ コンテンツをクライアント マシンの一時ファイルに格納する手間を省き、この一時 PDF ファイルを参照する HTML コンテナー コードを作成したいと考えています。PDF バイナリ コンテンツを html に直接埋め込み、この html を Web ブラウザ コントロールに直接表示する方法はありますか?

これらの以前のスレッドは、COM の「ハック」を参照していることがわかりました。より簡単で簡単な方法はありますか?ありがとう! jpeg ファイル (raw) を表示する C# WebBrowser コントロールを取得するにはどうすればよいですか?

ありがとう、ユニボール

4

1 に答える 1

2

非同期のプラグ可能なプロトコルを実装することがハックだとは言いません。IE が使用できる新しいプロトコルを実装するのは、Windows での標準的なアプローチです。ただし、プロトコル ハンドラの登録には面倒な設定が必要です。

しかし、最も簡単で簡単な方法は、実際に一時ファイルを使用し、html から単純にリンクすることです。関連する.NET関数を使用して、コードがフォルダー/ファイルパスなどについて仮定しないように注意すれば、面倒ではありません.

  1. GetTempPath()を使用して一時フォルダーを取得します。
  2. Guid.NewGuid()を使用して一意の名前で temp フォルダーに pdf ファイルを作成します。
  3. バイナリ PDF データをファイルに書き込みます。
  4. html 要素の href または src 属性を更新して、一時ファイルのフル パスを指定します。
  5. html を WebBrowser コントロールにロードします。
  6. 不要になったら、一時 PDF ファイルを削除します。

別の可能なアプローチは、バイナリ データを Base64 でエンコードし、DIV/Input 要素内に格納することです。次に、ActiveX コントロールまたはその他のクライアント側のブラウザー コンポーネントを HTML ページに追加します。これは、Base64 データを検索する方法を認識しており、それをバイナリ ストリームに戻す (および PDF として表示する) ことができます。ただし、これを行う 3d パーティ コントロールについては知りません。

于 2010-04-13T04:24:31.510 に答える