0

私のアプリケーションでは、注文が完了した後に顧客に HTML 電子メールの領収書を送信します。私がやりたいのは、これを webbrowser コントロールでプレビューすることです。

私が持っているコードは正常に動作しますが、ブラウザに画像がありません。

次のように、AlternateView で HTML を作成します。

Dim hview As AlternateView = AlternateView.CreateAlternateViewFromString(ReadTemplate(order), Nothing, "text/html")

次に、注文した画像をループして、次のように追加します。

Dim M As New LinkedResource(ResizeAndRotate(I.Path), Net.Mime.MediaTypeNames.Image.Jpeg) With {.ContentId = "Main" & cnt}
hview.LinkedResources.Add(M)

次に、hview ストリームからドキュメントを返します。

Dim ObjDoc As New HTMLDocument
Dim Doc As IHTMLDocument2 = ObjDoc
Dim reader As New IO.StreamReader(hview.ContentStream)
Doc.write(reader.ReadToEnd)
Return ObjDoc

ストリームから画像を取得するにはどうすればよいですか?

4

2 に答える 2

1

データ URI スキームでサポートされているように、base64 で画像データをエンコードし、ページにインラインで埋め込むことができます。例:

<!-- http://en.wikipedia.org/wiki/Data_URI_scheme -->
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg=="/>

もちろん、元の画像サイズによっては、かなりのオーバーヘッドがページ サイズに追加されます。

于 2013-11-01T01:13:17.967 に答える
1

記憶からの画像を使用できるとは思いません。一時的であっても、ハード ドライブに保存する必要があります。次のような HTML でそれらを参照する必要があります。

<img alt="An image" src="file:///C:/Images/Image.jpg" width="400" height="400" />
于 2013-10-31T22:54:21.820 に答える