Парсер
Сухроб Хусамов 09.01.2008 22:01
Все сделано на парсере. Конечно есть недостатки. Где без них. Но кое-что исправимо.
Странно что никто не использует сей способ. А как узнает - тут же внедряет в свой двигатель:) Наверное стоит о нем написать статью.
Итак, способ очень прост. Даже изучать DOC-формат не нужно.
Делаем файл в ворде с учетом некоторых несложных правил (типа списками не пользоваться или с осторожностью их использовать).
Сохраняем в формате... WordML. Или попусту в XML.
И все.
Этот XML разбирается с помощью класса msword.p (при желании могу поделиться).
И на выходе выдается уже более удобный XML без всякого мусора. И картинки тоже.
Позже я хочу сделать конвертер из DOC-формата. Ибо заставлять клиента хранить статьи в формате XML не совсем гуманно (хотя они особо не жалуются, ибо очень им нравится возможность не париться с картинками).
Есть еще несколько неприятных нюансов, связанные с тем, что формат WordML очень сложен и порой вместо текста там записывается что-то на внутреннем языке программирования. Например, бывает что вместо того, чтобы просто прописать ссылку, там записывается целая программа, генерирующая эту ссылку. В результате у меня эта ссылка превращается в обычный текст. Поэтому нормальный конвертер из DOC во что-то XML-евское нужен как логичное развитие этой темы.