HtmlRuleSanitizer (доступно на NuGet ) может сделать это для вас из коробки.
Он использует HTML Agility Pack для анализа HTML-кода и использует набор правил на основе белого списка для сохранения форматирования. Наборы правил по умолчанию избавляют практически от всего подробного HTML-кода MS Word, сохраняя базовую структуру документа, такую как теги заголовка, полужирный, курсив и т. Д.
Если вы хотите сохранить определенный стиль MS Word, вам придется создать или адаптировать набор правил для вашего варианта использования.
Например, он легко преобразует сотни строк HTML-кода, которые MS Word сгенерирует для документа, содержащего следующее:
Заголовок один
Абзац
Заголовок
два
Жирный
Курсив
Ссылка
Только для следующего набора относительно чистого HTML:
<html>
<body>
<h1><span>Heading</span> <span>one</span></h1>
<p><span>Paragraph</span></p>
<h2><span>Heading</span> <span>two</span></h2>
<p><span><strong>Bold</strong></span><strong></strong></p>
<p><span><i>Italic</i></span><i></i></p>
<p><i><a href="http://www.google.com/" target="_blank" rel="nofollow">Link</a></i></p>
</body>
</html>
Обратите внимание, что некоторые из раздражающих вещей, которые MS Word выполняет, например, очень часто открывают и закрывают теги (см. Элементы span в примере), очищаются не полностью.