我想在我们的 CMS 中添加一个单词导入功能,唯一的问题似乎是找不到一个好的库来读取 docx 文件(Word 2007)。
有没有人有一些建议,图书馆应该能够提取文档的内容和基本样式,如斜体、粗体、上标?
谢谢你的帮助
我想在我们的 CMS 中添加一个单词导入功能,唯一的问题似乎是找不到一个好的库来读取 docx 文件(Word 2007)。
有没有人有一些建议,图书馆应该能够提取文档的内容和基本样式,如斜体、粗体、上标?
谢谢你的帮助
docx
文件实际上只是文档 XML 的容器。您应该能够解压缩 docx 文件,然后转到里面的 word 文件夹,然后转到 document.xml。这有实际的文字。但是字体和样式之类的东西在 docx 容器中的其他 xml 文件中,所以你可能想弄乱一下,弄清楚什么是什么以及如何匹配它(我敢打赌,从使用命名空间开始)。
但是,是的,解压缩文件,然后使用 simplexml 将其转换为您可以实际使用的东西。
有一个库可以做到这一点,但它可以与Zend 框架一起使用它可能会对你有所帮助它被称为phpLiveDocx:http ://www.phplivedocx.org/downloads/ 该库在 New Bcd 下获得许可
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();
我刚刚找到了一个同时支持读写的库,在 codeplex forge http://openxmlapi.codeplex.com上检查它,它是在GPLv2下获得许可的。
或者,由于您请求了一个库,您可能想要查看类似Docvert的内容。我只是根据您的问题环顾四周,到目前为止,它是我最喜欢的 PHP。您输入单词文件位置,它会将其转换为具有属性和所有好东西的简单内容。
使用OpenOffice将 docx 文档转换为 odt 。然后使用eZ Components进行解析和导入。他们实际上在 CMZ eZ Publish中使用了导入。
这是我发现的一个简单的工作解决方案
http://webcheatsheet.com/php/reading_the_clean_text_from_docx_odt.php