Witam
Jestem w trakcie tworzenia mechanizmu czytającego zawartość plików *.doc . Ze względu na fakt wykorzystania narzędzia na serwerze (bez instalacji MS Office czy innych narzędzi) nie mogę wykorzystać Interop MS Office.
Udało mi się stworzyć mechanizm czytający dane binarne z pliku (kod poniżej), jednak ma on pewien mankament. Nie potrafi czytać polskich znaków. Kiedy w tekście pliku znajdują się polskie znaki diakrytyczne mechanizm czyta kilka pierwszych liter (jeśli w pliku nie ma polskich znaków czytana jest zawartość całego pliku).
FileStream fs = null;
fs = new FileStream(plik.ToString(), FileMode.Open);
byte[] example = new byte[fs.Length];
fs.Read(example, 0, example.Length);
string outtext = "";
int count = 0;
for (int i = 2560; i < example.Length; i++)
{
if (example[i] == 0)
{
break;
}
count++;
}
BinaryReader br = new BinaryReader(fs, Encoding.GetEncoding(1250));
br.BaseStream.Position = 2560;
byte[] newarr = br.ReadBytes(count);
outtext = System.Text.UTF8Encoding.UTF8.GetString(newarr);
string str = "";
for (int i = 0; i < outtext.Length; i++)
{
if ((outtext[i] >= '!' && outtext[i] <= '~') || (outtext[i] == ' ') || (outtext[i] == '\r'))
{
str += outtext[i];
}
}
fs.Close();
tekst = str;
Udało mi się wyciągnąć kilka znaków diakrytycznych przy konwersji na Unicode, jednak spowodowało to, że wszystkie pozostałe znaki zostały pominięte.
Proszę o pomoc w kwestii konwersji, bo zakładam, że tutaj jest problem.
Dziękuję z góry za wszystkie sensowne wypowiedzi