From 2a026867cac4c6e1a642c555b81ecd39ccc7be15 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sun, 13 Mar 2016 23:01:12 +0000 Subject: [PATCH] fpspreadsheet: Finalize image and headerfooter_image demos. Update readme in other demos folder. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4547 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../other/demo_write_headerfooter_images.lpr | 49 +++++++++-------- .../examples/other/demo_write_images.lpr | 53 ++++++++++--------- .../fpspreadsheet/examples/other/readme.txt | 4 ++ components/fpspreadsheet/fpsopendocument.pas | 2 +- 4 files changed, 62 insertions(+), 46 deletions(-) diff --git a/components/fpspreadsheet/examples/other/demo_write_headerfooter_images.lpr b/components/fpspreadsheet/examples/other/demo_write_headerfooter_images.lpr index 59fe8838e..a99ba8037 100644 --- a/components/fpspreadsheet/examples/other/demo_write_headerfooter_images.lpr +++ b/components/fpspreadsheet/examples/other/demo_write_headerfooter_images.lpr @@ -19,35 +19,42 @@ const image3 = '../../images/components/TSCELLEDIT.png'; begin + Writeln('Starting program "demo_write_headerfooter_images"...'); // Create the spreadsheet MyWorkbook := TsWorkbook.Create; - MyWorkbook.Options := [boFileStream]; + try + MyWorksheet := MyWorkbook.AddWorksheet('Sheet 1'); + MyWorksheet.WriteText(0, 0, 'The header of this sheet contains an image'); + MyWorksheet.PageLayout.HeaderMargin := 10; + MyWorksheet.Pagelayout.TopMargin := 30; // the header is 20 mm high + MyWorksheet.PageLayout.Headers[HEADER_FOOTER_INDEX_ALL] := '&CHeader with image!'; + MyWorksheet.PageLayout.AddHeaderImage(HEADER_FOOTER_INDEX_ALL, hfsLeft, image1); - MyWorksheet := MyWorkbook.AddWorksheet('Sheet 1'); - MyWorksheet.WriteText(0, 0, 'The header of this sheet contains an image'); - MyWorksheet.Pagelayout.TopMargin := 30; - MyWorksheet.PageLayout.HeaderMargin := 10; //25; - MyWorksheet.PageLayout.Headers[HEADER_FOOTER_INDEX_ALL] := '&CHeader with image!'; -// MyWorksheet.PageLayout.AddHeaderImage(HEADER_FOOTER_INDEX_ALL, hfsLeft, image1); + MyWorksheet := MyWorkbook.AddWorksheet('Sheet 2'); + MyWorksheet.WriteText(0, 0, 'The footer of this sheet contains an image'); + MyWorksheet.PageLayout.Footers[HEADER_FOOTER_INDEX_ALL] := '&CFooter with image!'; + MyWorksheet.PageLayout.AddFooterImage(HEADER_FOOTER_INDEX_ALL, hfsRight, image2); - MyWorksheet := MyWorkbook.AddWorksheet('Sheet 2'); - MyWorksheet.WriteText(0, 0, 'The footer of this sheet contains an image'); - MyWorksheet.PageLayout.Footers[HEADER_FOOTER_INDEX_ALL] := '&CFooter with image!'; -// MyWorksheet.PageLayout.AddFooterImage(HEADER_FOOTER_INDEX_ALL, hfsRight, image2); - - // Save the spreadsheet to a file - MyDir := ExtractFilePath(ParamStr(0)); - MyWorkbook.WriteToFile(MyDir + 'hfimg.xlsx', sfOOXML, true); - MyWorkbook.WriteToFile(MyDir + 'hfimg.ods', sfOpenDocument, true); + // Save the spreadsheet to files + MyDir := ExtractFilePath(ParamStr(0)); + MyWorkbook.WriteToFile(MyDir + 'hfimg.xlsx', sfOOXML, true); + MyWorkbook.WriteToFile(MyDir + 'hfimg.ods', sfOpenDocument, true); // MyWorkbook.WriteToFile(MyDir + 'hfimg.xls', sfExcel8, true); // MyWorkbook.WriteToFile(MyDir + 'hfimg5.xls', sfExcel5, true); // MyWorkbook.WriteToFile(MyDir + 'hfimg2.xls', sfExcel2, true); - if MyWorkbook.ErrorMsg <> '' then - begin - WriteLn(MyWorkbook.ErrorMsg); - end; + if MyWorkbook.ErrorMsg <> '' then + WriteLn(MyWorkbook.ErrorMsg); - MyWorkbook.Free; + WriteLn('Finished.'); + WriteLn('Please open the files "hfimg.*" in your spreadsheet program.'); + {$ifdef WINDOWS} + WriteLn('Press ENTER to close this program...'); + ReadLn; + {$endif} + + finally + MyWorkbook.Free; + end; end. diff --git a/components/fpspreadsheet/examples/other/demo_write_images.lpr b/components/fpspreadsheet/examples/other/demo_write_images.lpr index 673415e9b..6d51df7e2 100644 --- a/components/fpspreadsheet/examples/other/demo_write_images.lpr +++ b/components/fpspreadsheet/examples/other/demo_write_images.lpr @@ -19,37 +19,42 @@ const image3 = '../../images/components/TSCELLEDIT.png'; begin + Writeln('Starting program "demo_write_images"...'); + // Create the spreadsheet MyWorkbook := TsWorkbook.Create; - MyWorkbook.Options := [boFileStream]; + try + MyWorksheet := MyWorkbook.AddWorksheet('Sheet 1'); + MyWorksheet.DefaultRowHeight := 1.2; + MyWorksheet.WriteText(0, 0, 'There are images in cells A3 and B3'); // + // These images are offset by 1mm in both directions from the top/left cell edge + MyWorksheet.WriteImage(2, 0, image1, 1.0, 1.0, 2.0, 2.0); // This image is magnified by factor 2 + MyWorksheet.WriteImage(2, 1, image2, 1.0, 1.0); - 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, 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); -// MyWorksheet.WriteImage(0, 2, 'D:\Prog_Lazarus\svn\lazarus-ccr\components\fpspreadsheet\examples\read_write\ooxmldemo\laz_open.png'); -// 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); - MyWorkbook.WriteToFile(MyDir + 'img.ods', sfOpenDocument, true); + MyWorksheet := MyWorkbook.AddWorksheet('Sheet 2'); + MyWorksheet.WriteText(0, 0, 'There is an image in cell B3'); + MyWorksheet.WriteImage(2, 1, image3); + + // Save the spreadsheet to files + MyDir := ExtractFilePath(ParamStr(0)); + MyWorkbook.WriteToFile(MyDir + 'img.xlsx', sfOOXML, true); + MyWorkbook.WriteToFile(MyDir + 'img.ods', sfOpenDocument, true); // MyWorkbook.WriteToFile(MyDir + 'img.xls', sfExcel8, true); // MyWorkbook.WriteToFile(MyDir + 'img5.xls', sfExcel5, true); // MyWorkbook.WriteToFile(MyDir + 'img2.xls', sfExcel2, true); - if MyWorkbook.ErrorMsg <> '' then - begin - WriteLn(MyWorkbook.ErrorMsg); - end; + if MyWorkbook.ErrorMsg <> '' then + WriteLn(MyWorkbook.ErrorMsg); - MyWorkbook.Free; + WriteLn('Finished.'); + WriteLn('Please open the files "img.*" in your spreadsheet program.'); + {$ifdef WINDOWS} + WriteLn('Press ENTER to close this program...'); + ReadLn; + {$ENDIF} + + finally + MyWorkbook.Free; + end; end. diff --git a/components/fpspreadsheet/examples/other/readme.txt b/components/fpspreadsheet/examples/other/readme.txt index 73df2e5c5..823e1fc42 100644 --- a/components/fpspreadsheet/examples/other/readme.txt +++ b/components/fpspreadsheet/examples/other/readme.txt @@ -21,3 +21,7 @@ This folder contains various demo applications: - demo_write_formatting: shows some simple cell formatting - demo_write_formula: shows some rpn formulas + +- demo_write_images: adds images to worksheets + +- demo_write_headerfooter_images: adds images to worksheet headers and footers diff --git a/components/fpspreadsheet/fpsopendocument.pas b/components/fpspreadsheet/fpsopendocument.pas index 4d2080a09..29fd07cab 100755 --- a/components/fpspreadsheet/fpsopendocument.pas +++ b/components/fpspreadsheet/fpsopendocument.pas @@ -5919,7 +5919,7 @@ function TsSpreadOpenDocWriter.WritePageLayoutAsXMLString(AStyleName: String; AHeaderImageStr := IfThen((hdrImg = '') or (hdrImgPos = ''), '', Format( '', + 'style:position="center %s" style:repeat="no-repeat" />', [hdrImg, hdrImgPos] )); AFooterImageStr := IfThen((ftrImg = '') or (ftrImgPos = ''), '', Format(