以下の手順を使用して、TWebbrowser から JPG ファイルを作成します。これにより、JPG の外観は問題ありません。次に、この JPG を DevExpress から TcxImage コントロールにロードして、印刷します。そして、それは私の画像を台無しにするので、地図を見ることができません(これはGoogleマップの地図の一部です)画像をロードするためのコードは
imgPrint.Picture.LoadFromFile(lImage);
なぜこれがすでに画面上でそれほど悪く見えるのか、私にはよくわかりません。マップを印刷できるようにするために、このようにします。TWebBrowser から直接行うこともできますが、出力サイズを制御できず、独自のヘッダーとフッターを追加するのは難しいです。
procedure TfrmJsZipExplorer.actSaveExecute(Sender: TObject);
var
ViewObject : IViewObject;
r : TRect;
Bitmap: TBitmap;
begin
if WebBrowser1.Document <> nil then
begin
WebBrowser1.Document.QueryInterface(IViewObject, ViewObject) ;
if Assigned(ViewObject) then
try
Bitmap := TBitmap.Create;
try
r := Rect(0, 0, WebBrowser1.Width, WebBrowser1.Height) ;
Bitmap.Height := WebBrowser1.Height;
Bitmap.Width := WebBrowser1.Width;
ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0);
with TJPEGImage.Create do
try
Assign(Bitmap);
SaveToFile(lImagefile);
finally
Free;
end;
finally
Bitmap.Free;
end;
finally
ViewObject._Release;
end;
end;
end;