LINUX.ORG.RU

c++ doc extract text

 ,


0

2

Чем можно вытащить текст из док файлов?
нужна именно библиотека,через system не хочу.
Вроде работает libwv2, но она не переводит в utf-8.

Спасибо


Ответ на: комментарий от andreyu

непонятно как получить информацию об исходной кодировке

kasha
() автор топика

doc файл это OLE compound document.

на питоне есть Oleview, оно в общем работает.

также см. тему

про С++ — хоть он и не нужен, но ответ различается если ты пишешь под WinAPI (см. описание интерфейса IStorage про compound документы (как в OLEview, там же рядом есть вьювер на питоне. на С++ аналогично ему может быть устроен твой софт). более простой способ — через Word как COM-объект через COM-автоматизацию загрузить файл, перебрать DOM документа и его части, выгрузить их в сериализацию типа XML. написать можно хоть макросом в ворде, хоть на с++.

если нужно под линукс, то тут см. в сторону Apache POI, порта этой библиотеки на С++ и прочие разборы OLE файла вручную. также в Lucene что-то есть.

anonymous
()
Ответ на: комментарий от anonymous

на питоне есть Oleview, оно в общем работает.

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

поэтому POI и через DOM как-то надёжнее.

anonymous
()

Чем можно вытащить текст из док файлов?

LibreOffice в консольном режиме => конвертация в ODF => разобрать этот .XML.ZIP чем угодно.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.