2016-07-19 15 views
0

Что моя программа делает, так это отнимает текст из одного документа и заменяет тег в другом документе (.docx).Novacode DocX Library, Argument Exception при сохранении документа

С большинством документов это работает абсолютно безупречно, но иногда я бегу в АргументЪ Exception:

«♂» шестнадцатеричное значение 0x0B не является допустимым символом
«» шестнадцатеричное значение 0x07 не является допустимым символом

Теперь я просмотрел документы, в которых эти исключения происходят (в основном .docs) (извините, не могу разделить их здесь, секреты компании и т. Д.), И я не мог найти ссылочные символы в этих местах. Я также просмотрел извлеченный текст и не смог найти там каких-либо вредоносных символов, а также нет в названии документа (я избавился от всех не буквенно-цифровых символов).

Также исключение происходит во время функции document.SaveAs().

Кто-нибудь знает, в чем проблема может быть здесь, если я должен опубликовать свой код, я с удовольствием сделаю это.

ответ

0

Я смог решить эту проблему самостоятельно, я просто взял текст, который должен был войти в финальный файл, и заменил все неисправные символы.

doc.ActiveWindow.Selection.WholeStory(); 
text.Append(doc.ActiveWindow.Selection.Text); 
var regex = "[\x00-\x08\x0B\x0C\x0E-\x1F]"; 
var cleanedText = Regex.Replace(text.ToString(), regex, String.Empty, RegexOptions.Compiled);