Я хочу добавить функцию импорта слов в нашу CMS, единственная проблема, с которой я не могу найти хорошую библиотеку для чтения файлов docx (Word 2007).
У кого-нибудь есть рекомендации, библиотека должна иметь возможность извлекать содержимое документа и базовый стиль, как курсив, полужирный, надстрочный?
Спасибо за вашу помощь
Или, поскольку вы запросили библиотеку, вы можете захотеть взглянуть на нечто вроде Docvert . Я просто оглядывался по вашему вопросу, и это мой любимый до сих пор для PHP. Вы вводите местоположение файла слова, оно преобразует его в нечто простое с атрибутами и всем этим хорошим материалом.
Файлы docx
самом деле являются просто контейнерами для XML документа. Вы должны иметь возможность разархивировать файл docx, а затем перейти к папке с текстом внутри, а затем к document.xml. У этого есть фактический текст. Но такие вещи, как шрифты и стили, находятся в других xml-файлах в контейнере docx, поэтому вы, вероятно, захотите немного поработать и выяснить, что и как их совместить (начните с использования пространств имен, держу пари).
Но да, разархивируйте файл, а затем используйте simplexml, чтобы преобразовать его во что-то, с чем вы действительно можете столкнуться.
PHPDocX PRO включает в себя класс TransformDoc, который может читать файлы .docx (zip) и генерировать XHTML (или PDF):
... require_once 'phpdocx_pro/classes/TransformDoc.inc'; $doc = new TransformDoc(); $doc->setStrFile($file->filepath); $doc->generateXHTML(); $html = $doc->getStrXHTML();
Для этого есть библиотека, но она работает с картой Zend, может быть, это поможет вам. Это называется phpLiveDocx : http://www.phplivedocx.org/downloads/ . Библиотека лицензируется под New Bcd
Я только что нашел библиотеку, в которой есть поддержка чтения и записи, проверьте ее на кузнице Codeplex http://openxmlapi.codeplex.com и она лицензируется под GPLv2 .
Преобразование документа docx в odt с помощью OpenOffice . Используйте затем eZ Components для синтаксического анализа и импорта. Они фактически используют импорт в своей CMZ eZ Publish .
Вот простое рабочее решение, которое я нашел
http://webcheatsheet.com/php/reading_the_clean_text_from_docx_odt.php