У меня проблема.Мне нужно сравнить документ Word.Текст и формат в C #, и я нашел стороннюю библиотеку для просмотра и обработки документа, и это Devexpress.Поэтому я скачал пробную версию, чтобы проверить, можно ли решить проблему с помощью этого
Пример. У меня есть документ из двух слов
1: Это равно aтекстовый пример
Этот является не текстовым примером
В приведенном выше тексте разница только в слове , а не
Моя проблема в том, как я могу проверить разницу, включая формат?
Пока это мой код для перебора содержимого документа
public void CompareEpub(string word)
{
try
{
using (DevExpress.XtraRichEdit.RichEditDocumentServer srv = new DevExpress.XtraRichEdit.RichEditDocumentServer())
{
srv.LoadDocument(word);
MyIterator visitor = new MyIterator();
DocumentIterator iterator = new DocumentIterator(srv.Document, true);
while (iterator.MoveNext())
{
iterator.Current.Accept(visitor);
}
foreach (var item in visitor.ListOfText)
{
Debug.WriteLine("text: " + item.Text + " b: " + item.IsBold + " u: " + item.IsUnderline + " i: " + item.IsUnderline);
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
Debug.WriteLine(ex.StackTrace);
throw ex;
}
}
public class MyIterator : DocumentVisitorBase
{
public List<Model.HtmlContent> ListOfText { get; }
public MyIterator()
{
ListOfText= new List<Model.HtmlContent>();
}
public override void Visit(DocumentText text)
{
var m = new Model.HtmlContent
{
Text = text.Text,
IsBold = text.TextProperties.FontBold,
IsItalic = text.TextProperties.FontItalic,
IsUnderline = text.TextProperties.UnderlineWordsOnly
};
ListOfText.Add(m);
}
}
С кодом выше я могуперейти к тексту и его формату.Но как я могу использовать это для сравнения текста?
Если я собираюсь создать два списка для сравнения каждого документа.
Как я могу сравнить его?
Если я собираюсь сравнить текст с другим списком.Сравните это в цикле.
Я получу это, поскольку только два слова равны.
Может помочь мне в этом.Или просто представьте, как я могу заставить его работать.
Я не писал на форуме devexpress, потому что чувствую, что это проблема с тем, как я смогу это сделать.И не проблема с пробной версией или контролем, который я использовал.И я также узнал, что элемент управления не имеет функции для сравнения текста.Как тот, что с Microsoft Word.
Спасибо.
Обновление:
Желаемый вывод
Это - это (не) текстовый пример
Текст внутри () означает, что он не найден в первом документе Вывод, который я хочу, похож на выводDiff Match Patch https://github.com/pocketberserker/Diff.Match.Patch
Но я не могу реализовать код для проверки формата.