Передо мной стояла небольшая задача — работать с различными файлами, в которые нерадивые пользователи отправляют информацию о себе.
Начав со сбора статистики, я увидел ужасную картину – всех выкидывают всячески.
Они отправляют все, что могут. Начиная с простых текстовых файлов (слава богам, в мире есть адекватные люди) в презентации 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 #регулярные выражения #личный опыт #Чулан
-
Столетов, Александр Григорьевич
19 Oct, 24 -
Доступные Цены На Seo Для Вашего Сайта
19 Oct, 24 -
Теория Цвета, Контраст
19 Oct, 24 -
Полезные Материалы По San
19 Oct, 24 -
Белтелеком. Комедия В Трёх Действиях
19 Oct, 24 -
Канадка Создала Женщину-Робота Айко
19 Oct, 24 -
Выбор Выделенного Сервера. Подводные Скалы.
19 Oct, 24