Проблема такая встала... автоматического преобразования скриптами форматов doc, xls, txt и pdf в тривиальный HTML. Если с обычным текстом всё ясно и понятно, то с остальными форматами — сплошные проблемы. По xls я нашёл скрипт, извлекающий текст, надеюсь, что и по pdf есть что-то. Однако самый распространённый документ Word — самая настоящая тёмная лошадка, если работать с ним не через COM-объект (нет Win-хостинга).
Если по такому формату, как RTF на MSDN ещё есть что-то (спецификация на английском), то DOC остаётся одним из святых таинств MS. Если даже тупо брать и открывать его fopen, то возникают проблемы с кодировками: UTF-16, используемый в файле word (как пишет редактор Bred) упорно не хочет переводиться в любую другую (с помощью mb_convert_encoding).
Вот и сиди — думай, что делать. Те скрипты по разбору xls мне мало чего дали, я не настолько опытный, чтобы понимать все смещения ячеек, без спецификации на формат — разобраться сложно.
Быть может кто знает, как всё таки перевести документы word в html (и наоборот, соотв.); или если где лежит спецификация на формат DOC, украденная у MS — тоже рад буду её увидеть.
Скриптов же, делающих эту адскую работу, я не прошу, хотя и буду рад, если они есть.
P.S. библиотеку WmVare не могу скомпилировать, хотя по заявлениям она подобную работу делает.
В Pear'e есть только "от мёртвого осла уши", то есть Excel, а я нашёл скрипт работы с ним и без помощи Pear'a. Все говорят, что спецификации на DOC не существует в природе.... Но я буду искать дальше!
Здравствуйте, TheBattleRagesOn, Вы писали:
>>в pear искал? Ничего разве нет на этот счет?
TBR>В Pear'e есть только "от мёртвого осла уши", то есть Excel, а я нашёл скрипт работы с ним и без помощи Pear'a. Все говорят, что спецификации на DOC не существует в природе.... Но я буду искать дальше!
Я даже знаю, где можно найти. Только вот можно ли там найти? Это вопрос....
OpenOffice, поддерживающий файлы MS Word является опенсорсным.
>OpenOffice, поддерживающий файлы MS Word является опенсорсным
То, что программа поддерживает MS Word ещё не значит, что она знает, как устроен файл Word (есть COM-объекты, через которых всё и делается). Это раз.
Второе, даже если есть исходничок, как в случае библиотеки VwVare, которую я никак не могу скомпилякать (может не надо было VC++ 6 использовать?), то там, извините меня, мягко говоря, неудобоваримые 20-30-50 тысяч строк кода на C++, который я физически не переношу — работа-то делается на PHP. Вот поэтому я и ищу спецификацию на DOC, которой, как мне сказали, в природе не существует.
Кроме того, в рамках проекта Jakarta существует документация на формат POI http://jakarta.apache.org/poi/ — Jakarta POI — Java API To Access Microsoft Format Files
там тоже есть достаточно подробные и активно развиваемые описания форматов.
Хватит?
ЗЫ: по собственному опыту: для того чтобы эффективно использовать эти спецификации, желательно иметь под рукой исходники, которые их реализуют. К примеру, я пользовал antiword.
Здравствуйте, TheBattleRagesOn, Вы писали:
>>OpenOffice, поддерживающий файлы MS Word является опенсорсным
TBR>То, что программа поддерживает MS Word ещё не значит, что она знает, как устроен файл Word (есть COM-объекты, через которых всё и делается). Это раз. TBR>Второе, даже если есть исходничок, как в случае библиотеки VwVare, которую я никак не могу скомпилякать (может не надо было VC++ 6 использовать?), то там, извините меня, мягко говоря, неудобоваримые 20-30-50 тысяч строк кода на C++, который я физически не переношу — работа-то делается на PHP. Вот поэтому я и ищу спецификацию на DOC, которой, как мне сказали, в природе не существует.
знает, потому как она мультиплатформенная, а под linux-ом COM объектов нет никаких.
Здравствуйте, vladie, Вы писали:
TBR>>То, что программа поддерживает MS Word ещё не значит, что она знает, как устроен файл Word (есть COM-объекты, через которых всё и делается). Это раз. V>знает, потому как она мультиплатформенная, а под linux-ом COM объектов нет никаких.
Теперь соглашусь, потому как узнал про этот проект кое-что. Можно даже исходников скачать... правда 250 мегабайт... но можно.