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));