Получение Текста Из .Doc. Как Лучше Всего Это Сделать?

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

Начав со сбора статистики, я увидел ужасную картину – всех выкидывают всячески.

Они отправляют все, что могут. Начиная с простых текстовых файлов (слава богам, в мире есть адекватные люди) в презентации PowerPoint или Flash (а я не верил в таких людей до того момента, пока не увидел их сам) .

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

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

Обработать его вручную не так проблематично, как основной поток.

Текстовые, html и т.п.

файлы из-за выбора одного формата затронуты не могли.

А вот с другими распространенными форматами, конечно, пришлось повозиться.

В результате недолгих поисков в репозиториях был найден пакет ВВ — набор утилит для конвертации из .

doc (В руководстве сообщается о возможности конвертировать из Word 2000, Word 97, Word 95 и Word 6. А также об ограниченной поддержке более ранних форматов.

) в html, rtf, LaTeX. Качество его конвертации, судя по проведенным экспериментам, не самое лучшее - форматирование все же несколько нарушено.

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

Также для нескольких других часто встречающихся форматов использовались соответствующие утилиты (unrtf, unzip, unrar и т.д.) Никаких сложностей с ними я не встретил, и поэтому мне о них даже нечего говорить.

Вернемся к файлам doc. Как я уже упоминал, конвертация происходит вполне успешно, если бы не одна проблема, которая попортила мне нервы.

Я расскажу вам об этом больше.

После конвертации в html на текст устанавливаются другие скрипты, которые обрабатывают текст, разбивая его на слова, осуществляя поиск кодовых фраз и выполняя другую полезную работу с помощью регулярных выражений.

На других файлах всё работало прекрасно, но текст, полученный из .

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

Исходная ошибка незначительна, но чтобы ее найти, мне пришлось трижды удариться о стену.

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

Это пробел.

Под кодовым номером 160 (А0 в шестнадцатеричных кодах).

Именно по этому поводу регулярные выражения и сломались, посчитав его не пробельным символом, а наиболее печатным.

К счастью, я понял причину еще до того, как мне пришла в голову мысль утопиться в офисной кофеварке.

На этом завершается рассказ о моих приключениях.

Если эта тема будет интересна, напишу о своих дальнейших мучениях.

ПС Самое важное.

Будучи уверенным в собственной некомпетентности, хочу спросить читателей – может быть, есть более гуманные способы получения текста из файлов Word, о которых я не знаю? Я также был бы признателен, если бы знал о методах конвертации из других форматов, которые могут содержать текст, но плохо декодируются.

Например, та же вспышка.

Наверняка есть способы.

Теги: #WV #doc #HTML #регулярные выражения #личный опыт #Чулан

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.