Hola a tod@s y Feliz Año Nuevo (solo estamos a 3)
Intento copiar una imagen a un fichero Word, el problema es que la imagen me aparece en blanco
El código que utilizo es el siguiente ( he mezclado TrucoMania con ClubDelphi

)
Código Delphi
[-]
Procedure TWordObj.PasteImgToBookMarks( Marca, FileImg:string;
iHeight:integer=100;
iWidth:integer=50 );
var
Image : TImage;
BitMap : TBitMap;
Area : TRect;
AFormat : Word;
AData : THandle;
APalette: HPALETTE;
EscalaX : Double;
EscalaY : Double;
Escala : Double;
Begin
if WordApp.ActiveDocument.Bookmarks.Exists(Marca) then begin
Image := TImage.Create( nil );
try
with Image do begin
Autosize := true;
Picture.LoadFromFile( FileImg );
if( Widththen EscalaX := Width / iWidth
else EscalaX := iWidth / Width;
if( Heightthen EscalaY := Height / iHeight
else EscalaY := iHeight / Height;
if( EscalaYthen Escala := EscalaY
else Escala := EscalaX;
with Area do begin
Bottom := Trunc(Height * Escala);
Left := 0;
Right := Trunc(Width * Escala);
Top := 0;
end;
end;
BitMap := TBitMap.Create;
with BitMap do begin
try
Height := Area.Bottom;
Width := Area.Right;
Canvas.StretchDraw(Area, Image.Picture.Bitmap);
SaveToClipboardFormat(AFormat, AData, APalette);
ClipBoard.SetAsHandle(AFormat, AData);
WordApp.ActiveDocument.Bookmarks.Item(Marca).Range.Paste;
finally
free;
end;
end;
finally
Image.Free;
end;
end;
end;
Como digo, el tamaño ajusta perfectamente, pero no tiene imagen.
El pegado de la marca trabaja, porque si dejo la imagen a su tamaño original la pega correctamente
Código Delphi
[-]
Procedure TWordObj.PasteImgToBookMarks( Marca, FileImg:string );
var
Image : TImage;
AFormat : Word;
AData : THandle;
APalette: HPALETTE;
Begin
if WordApp.ActiveDocument.Bookmarks.Exists(Marca) then begin
Image := TImage.Create( nil );
try
with Image do begin
Picture.LoadFromFile( FileImg );
SaveToClipboardFormat(AFormat, AData, APalette);
ClipBoard.SetAsHandle(AFormat, AData);
WordApp.ActiveDocument.Bookmarks.Item(Marca).Range.Paste;
end;
finally
Image.Free;
end;
end;
end;
¿Alguna idea de donde estoy metiendo la pata?
Gracias
Salvador