чтение документов (Office Open XML) в PHP - PullRequest
8 голосов
/ 01 октября 2009

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

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

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

Ответы [ 7 ]

11 голосов
/ 01 октября 2009

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

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

4 голосов
/ 09 июня 2011

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();
4 голосов
/ 01 октября 2009

Для этого есть библиотека, но она работает с Zend Framework Может быть, она поможет Он называется phpLiveDocx : http://www.phplivedocx.org/downloads/ Библиотека лицензирована под Новый Bcd

3 голосов
/ 02 октября 2009

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

2 голосов
/ 01 октября 2009

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

0 голосов
/ 31 июля 2012

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

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

0 голосов
/ 20 января 2010

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

...