2009-10-01 2 views
8

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

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

Спасибо за вашу помощь

ответ

2

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

+0

выглядит многообещающим, но я должен был бы сделать его API. – RageZ

11

docx файлы на самом деле просто контейнеры для XML документа. Вы должны иметь возможность разархивировать файл docx, а затем перейти к папке с текстом внутри, а затем к document.xml. У этого есть фактический текст. Но такие вещи, как шрифты и стили, находятся в других xml-файлах в контейнере docx, поэтому вы, вероятно, захотите немного поработать и выяснить, что и как их совместить (начните с использования пространств имен, держу пари).

Но да, разархивируйте файл, а затем используйте simplexml, чтобы преобразовать его во что-то, с чем вы действительно можете столкнуться.

+0

Спасибо, но мне интересно, если кто-то не пришел с библиотекой, чтобы это сделать. Я бы сделал некоторые XSLT обработки, если мне действительно нужно. – RageZ

+0

См. Мой другой ответ. Единственное, что мне не нравится в этом, - это отсутствие простого поиска API – Anthony

+0

, класс TbsZip может читать (и даже редактировать) содержимое zip-архивов без какой-либо зависимости или временных файлов. Анализ XML может быть выполнен с помощью нескольких других инструментов. – Skrol29

4

Существует библиотека, чтобы сделать это, но она работает с рамками Zend может быть, это поможет вам Это называется phpLiveDocx: http://www.phplivedocx.org/downloads/ Библиотеки лицензированные под Новым BCD

3

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

0

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

4

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(); 
+1

Для этого требуется лицензия – user478636

+0

@ user478636, Nope, ее доступно в сообществе. –