чтение docx (Office Open XML) в PHP

Я хочу добавить функцию импорта word в нашу CMS, единственная проблема, которую я не могу найти хорошую библиотеку для чтения файлов docx (Word 2007).

У кого-нибудь есть какие-то рекомендации, библиотека должна иметь возможность извлекать содержимое документа и основной стиль, такой как курсив, полужирный, Надстрочный?

Спасибо за помощь

7 ответов


или, Поскольку вы запросили библиотеку, вы можете посмотреть что-то вроде Docvert. Я просто смотрел вокруг, основываясь на вашем вопросе, и это мой любимый до сих пор для PHP. Вы вводите местоположение файла word, он преобразует его во что-то простое с атрибутами и все такое хорошее.


docx файлы являются контейнерами для XML-документа. Вы должны иметь возможность распаковать файл docx, а затем перейти в папку word внутри, а затем в документ.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 framework может быть это поможет вам Она называется phpLiveDocx : http://www.phplivedocx.org/downloads/ Библиотека лицензирована под новым Bcd


Я только что нашел библиотеку, в которой есть поддержка чтения и записи, проверьте ее на CodePlex forge http://openxmlapi.codeplex.com и он лицензирован под в GPLv2 .


преобразование документа docx в odt с помощью OpenOffice. Используйте тогда компоненты eZ сделать парсинг и импорт. Они фактически используют импорт в своем CMZ EZ публикация.


вот простое рабочее решение, которое я нашел

http://webcheatsheet.com/php/reading_the_clean_text_from_docx_odt.php