私はC#4.0でWindowsサービスに取り組んでおり、画像内の異なるファイル(tifとjpeg)を変換しています
HTMLファイル(通常は電子メール)を画像に変換したいときに問題があります。
ウェブブラウザを使用しています
var browser = new WebBrowser();
browser.DocumentCompleted += this.BrowserDocumentCompleted;
browser.DocumentText = html;
および DrawToBitmap
var browser = sender as WebBrowser;
Rectangle body = new Rectangle(browser.Document.Body.ScrollRectangle.X * scaleFactor,
browser.Document.Body.ScrollRectangle.Y * scaleFactor,
browser.Document.Body.ScrollRectangle.Width * scaleFactor,
browser.Document.Body.ScrollRectangle.Height * scaleFactor);
browser.Height = body.Height;
Bitmap output = new Bitmap(body.Width, body.Height);
browser.DrawToBitmap(output, body);
小規模または中規模の html では問題なく動作しますが、長い html (高さ 22,000 px 以上など) では DrawToBitmap に GDI 例外があります。
無効なパラメーター
画像 GDI+ が有効ではありません
インターネットによると、画像が大きすぎるため、この種のエラーが追加されます。
私の質問: 大きな画像を生成せずに X 画像 (ページネーション) で html を変換するにはどうすればよいですか?ライブラリを使用せずに可能であれば。
前もって感謝します。
編集:トリッキーな解決策を見つけました:たとえば、ページを設定するdivウィッチとオフセット用に別のウィッチでhtmlを囲みます:
<div style="height:3000px; overflow:hidden">
<div style="margin-top:-3000px">
ただし、このソリューションでは、テキスト行または画像の途中でトリミングできます...