2016-07-19 3 views
0

내 프로그램의 기능은 한 문서에서 일부 텍스트를 가져 와서 다른 문서 (.docx)의 태그를 바꿉니다. 대부분의 문서와Novacode DocX 라이브러리, 문서 저장시 예외 예외

이 절대적으로 완벽하게 작동하지만, 가끔은는 인수 예외로 실행

'♂'16 진수 값에는 0x0B가 유효한 문자
''16 진수 값 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);