c# - RTF 通过 RichTextBox 转 HTML,如何设置正确的字体大小?
问题描述
我有一个格式文本,通过调用RTF
从 a 接收到。我需要将其转换为 html,但我发现的最佳解决方案是. 无论如何,这使用 a ,它加载 RTF 格式的文本,然后从那里作为 XAML 获取,然后将其转换为 HTML。UWP RichEditBox
Editor.Document.GetText(TextGetOptions.FormatRtf, out string rtf);
MarkupConverter
WPF RichTextBox
问题是,如果我设置更大的字体大小,在 RTF 中显示为\fs44
,并且当它转换为 XAML 时,它会显示为以下方式:FontSize="34.666666666666664"
. 我想看看FontSize="34pt"
(或35,没关系)。
我理解为什么会发生这种情况,但是有没有办法告诉 RichTextBox 将其舍入并放置该pt文本?
如果您能提出一种将 RTF 转换为 HTML 的更好方法,我也将不胜感激。
解决方案
我通过搜索并用正则表达式替换 html 中的字体大小来解决它:
public static string ConvertFloatingFontSize(string html) {
var matches = Regex.Matches(html, @"font-size:([0-9]+.?[0-9]*);");
if (matches.Count > 0) {
foreach (Match match in matches) {
var fontSize = match.Value;
if (html.IndexOf(fontSize) >= 0 && match.Groups.Count > 1) {
double.TryParse(match.Groups[1].Value, out double result);
if (result > 0) {
int sizeAsInt = (int)result;
html = html.Replace(fontSize, $"font-size:{sizeAsInt}px;");
}
}
}
}
return html;
}
推荐阅读
- c# - 如何在 DataGridView 中绑定 DataColumns 的末尾加入未绑定的数据列?
- angular - Angular:HTTP客户端转换树状数据结构
- mongodb - 如果满足条件,则更新数组中的每个元素
- python - Python中的“with”语句有什么用?
- c++ - 为什么每个编译器都将此构造函数调用视为函数指针?
- python-3.x - 我想用 python 脚本从 python 文件中提取所有变量名,而不编辑 python 文件
- javascript - 在科尔多瓦的 config.xml 中动态更改内容 src 值
- google-ads-api - Google Ads API - 是否存在 REST API?
- python - 没有使用 Facebook Marketing API 获得暂停的广告洞察
- expect - 期望脚本跳过错误的密码