diff --git a/components/fpspreadsheet/examples/other/demo_write_images.lpr b/components/fpspreadsheet/examples/other/demo_write_images.lpr index c30d3bd87..673415e9b 100644 --- a/components/fpspreadsheet/examples/other/demo_write_images.lpr +++ b/components/fpspreadsheet/examples/other/demo_write_images.lpr @@ -24,10 +24,11 @@ begin MyWorkbook.Options := [boFileStream]; MyWorksheet := MyWorkbook.AddWorksheet('Sheet 1'); + MyWorksheet.DefaultRowHeight := 1.2; MyWorksheet.WriteText(0, 0, 'There are images in cells A3 and B3'); // - MyWorksheet.WriteImage(2, 0, image1); - MyWorksheet.WriteImage(3, 0, image2); - + MyWorksheet.WriteImage(2, 0, image1, 1.0, 1.0, 2.0, 2.0); + MyWorksheet.WriteImage(2, 1, image2, 1.0, 1.0); + { MyWorksheet := MyWorkbook.AddWorksheet('Sheet 2'); MyWorksheet.WriteText(0, 0, 'There is an image in cell B3'); MyWorksheet.WriteImage(2, 1, image3); @@ -35,7 +36,7 @@ begin // MyWorksheet.WriteHyperlink(0, 0, 'http://www.chip.de'); // MyWorksheet.PageLayout.AddHeaderImage(1, hfsLeft, 'D:\Prog_Lazarus\svn\lazarus-ccr\components\fpspreadsheet\examples\read_write\ooxmldemo\laz_open.png'); // MyWorksheet.PageLayout.Headers[1] := '<his is a header&R&G'; - + } // Save the spreadsheet to a file MyDir := ExtractFilePath(ParamStr(0)); MyWorkbook.WriteToFile(MyDir + 'img.xlsx', sfOOXML, true); diff --git a/components/fpspreadsheet/fpsopendocument.pas b/components/fpspreadsheet/fpsopendocument.pas index 43a05139a..4d2080a09 100755 --- a/components/fpspreadsheet/fpsopendocument.pas +++ b/components/fpspreadsheet/fpsopendocument.pas @@ -6007,9 +6007,10 @@ begin continue; end; AppendToStream(AStream, Format( - '' + + '' + '' + '' + '' + diff --git a/components/fpspreadsheet/fpspreadsheet.pas b/components/fpspreadsheet/fpspreadsheet.pas index 180e6ab9d..1d905f3b0 100755 --- a/components/fpspreadsheet/fpspreadsheet.pas +++ b/components/fpspreadsheet/fpspreadsheet.pas @@ -499,7 +499,7 @@ type procedure RemoveAllImages; procedure RemoveImage(AIndex: Integer); function WriteImage(ARow, ACol: Cardinal; AFileName: String; - AOffsetX: Integer = 0; AOffsetY: Integer = 0; + AOffsetX: Double = 0.0; AOffsetY: Double = 0.0; AScaleX: Double = 1.0; AScaleY: Double = 1.0): Integer; // Notification of changed cells @@ -3361,8 +3361,8 @@ begin stream := FWorkbook.GetEmbeddedStream(img.Index); Result := GetImageSize(stream, ExtractFileExt(stream.Name), AWidth, AHeight); // in inches! - AWidth := inToMM(AWidth); // in millimeters now - AHeight := inToMM(AHeight); + AWidth := inToMM(AWidth*img.ScaleX); // in millimeters now + AHeight := inToMM(AHeight*img.ScaleY); // Find x coordinate of left image edge, in inches. factor := FWorkbook.GetDefaultFont.Size/2; // Width of "0" character in pts @@ -3430,7 +3430,7 @@ end; @return Index into the internal image list. -------------------------------------------------------------------------------} function TsWorksheet.WriteImage(ARow, ACol: Cardinal; AFileName: String; - AOffsetX: Integer = 0; AOffsetY: Integer = 0; + AOffsetX: Double = 0.0; AOffsetY: Double = 0.0; AScaleX: Double = 1.0; AScaleY: Double = 1.0): Integer; var img: PsImage;