2009-10-01 210 views
8

我想向我們的CMS添加一個詞彙導入功能,唯一的問題是我似乎無法找到一個用於閱讀docx文件(Word 2007)的好庫。在PHP中閱讀docx(Office Open XML)

有沒有人有一些建議,圖書館應該能夠提取文件的內容和基本的樣式,如斜體,粗體,上標?

感謝您的幫助

回答

2

或者,既然你要求圖書館,你可能想看看像Docvert。我只是根據你的問題環顧四周,這是我迄今爲止最喜歡的PHP。你輸入word文件的位置,它將它轉換成簡單的屬性和所有好東西。

+0

看起來很有前途,但我將不得不製作一個API。 – RageZ 2009-10-01 04:58:23

11

docx文件實際上是對文檔的XML只是容器。你應該能夠解壓縮docx文件,然後轉到word文件夾裏面,然後到document.xml。這有實際的文字。但是像字體和樣式這樣的東西是在docx容器中的其他xml文件中的,所以你可能會想弄清楚什麼是什麼以及如何匹配它(開始使用命名空間,我敢打賭)。

但是,是的,解壓縮該文件,然後使用simplexml將其轉換爲您可以實際弄亂的東西。

+0

謝謝,但我想知道如果有人沒有帶圖書館來做到這一點。如果我真的需要,我會做一些XSLT處理。 – RageZ 2009-10-01 03:09:31

+0

看到我的其他答案。我唯一不喜歡的就是缺乏易於查找的API – Anthony 2009-10-01 03:15:55

+0

類TbsZip可以讀取(甚至編輯)zip壓縮文件的內容,而不需要任何依賴或任何臨時文件。 XML分析可以用其他幾種工具完成。 – Skrol29 2011-03-31 22:33:01

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 2011-11-03 15:13:30

+0

@ user478636,Nope,它在社區版上可用。 – 2013-07-12 07:37:50