diff --git a/qt/qtbase/src/gui/text/qtextdocument.cpp b/qt/qtbase/src/gui/text/qtextdocument.cpp index f8215f92e..bed866522 100644 --- a/qt/qtbase/src/gui/text/qtextdocument.cpp +++ b/qt/qtbase/src/gui/text/qtextdocument.cpp @@ -2417,6 +2417,19 @@ bool QTextHtmlExporter::emitCharFormatStyle(const QTextCharFormat &format) html += QLatin1Char(';'); attributesEmitted = true; } + + if (format.hasProperty(QTextFormat::FontLetterSpacing) && format.fontLetterSpacing() != defaultCharFormat.fontLetterSpacing()) { + html += QLatin1String(" letter-spacing:"); + qreal value = format.fontLetterSpacing(); + const bool percentSpacing = (format.fontLetterSpacingType() == QFont::PercentageSpacing); + // Map to em (100% == 0em). 0% is treated as 100% (== 0em) by Qt and doesn't need conversion. + if (percentSpacing && value != 0) { + value = (value / 100) - 1; + } + html += QString::number(value); + html += percentSpacing ? QLatin1String("em;") : QLatin1String("px;"); + attributesEmitted = true; + } QLatin1String decorationTag(" text-decoration:"); html += decorationTag;