From 566cef1ba59f90d6ee2ad5678398906243540e99 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sat, 23 Jan 2016 20:01:01 +0000 Subject: [PATCH] fpspreadsheet: Preserve spaces when parsing html text to be used as rich-text. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4464 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/fpspreadsheet/fpshtmlutils.pas | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/fpspreadsheet/fpshtmlutils.pas b/components/fpspreadsheet/fpshtmlutils.pas index 77ab125df..22552079e 100644 --- a/components/fpspreadsheet/fpshtmlutils.pas +++ b/components/fpspreadsheet/fpshtmlutils.pas @@ -592,6 +592,7 @@ type FFontStack: TsIntegerStack; FCurrFont: TsFont; FPointSeparatorSettings: TFormatSettings; + FPreserveSpaces: Boolean; function AddFont(AFont: TsFont): Integer; procedure AddRichTextParam(AFont: TsFont; AHyperlinkIndex: Integer = -1); procedure ProcessFontRestore; @@ -603,6 +604,7 @@ type destructor Destroy; override; property PlainText: String read FPlainText; property RichTextParams: TsRichTextParams read FRichTextParams; + property PreserveSpaces: Boolean read FPreserveSpaces write FPreserveSpaces; end; constructor TsHTMLAnalyzer.Create(AWorkbook: TsWorkbook; AFont: TsFont; @@ -885,7 +887,8 @@ end; procedure TsHTMLAnalyzer.TextFoundHandler(AText: String); begin - AText := CleanHTMLString(AText); + if not FPreserveSpaces then + AText := CleanHTMLString(AText); if AText <> '' then begin if FPlainText = '' then @@ -909,6 +912,7 @@ var begin analyzer := TsHTMLAnalyzer.Create(AWorkbook, AFont, AHTMLText + ''); try + analyzer.PreserveSpaces := true; analyzer.Exec; APlainText := analyzer.PlainText; SetLength(ARichTextParams, Length(analyzer.RichTextParams));