2016-07-19 21 views
0

Was mein Programm tut, ist, dass es Text aus einem Dokument benötigt und ein Tag in einem anderen Dokument (.docx) ersetzt.Novacode DocX-Bibliothek, Argument Ausnahme beim Speichern eines Dokuments

Bei den meisten Dokumenten funktioniert dies absolut einwandfrei, aber manchmal laufe ich in ein Argument Ausnahme:

‚♂‘ hexadezimalen Wert 0x0b ist kein gültiges Zeichen
‚‘ hexadezimalen Wert 0x07 ist kein gültiges Zeichen

Jetzt habe ich die Dokumente durchgesehen, in denen diese Ausnahmen auftreten (meistens .docs) (ich kann diese hier nicht teilen, Firmengeheimnisse usw.) und ich konnte die referenzierten Zeichen nirgends finden. Ich habe mir auch den extrahierten Text angeschaut und konnte keine bösartigen Zeichen darin finden, noch gibt es irgendwelche im Titel des Dokuments (ich habe alle nicht-alphanumerischen Zeichen losgeworden).

Auch die Ausnahmen tritt während der Funktion document.SaveAs() auf.

Weiß jemand, was das Problem hier sein könnte, wenn ich meinen Code poste, werde ich es gerne tun.

Antwort

0

Ich konnte dieses Problem auf meine eigene lösen, ich nahm nur den Text, der in die endgültige Datei gehen sollte und alle fehlerhaften Zeichen ersetzt.

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);