2009-10-01 19 views
8

Quiero agregar una función de importación de palabras a nuestro CMS, el único problema que no puedo parece ser que encuentre una buena biblioteca para leer archivos docx (Word 2007).leyendo docx (Office Open XML) en PHP

¿Alguien tiene algunas recomendaciones, la biblioteca debería ser capaz de extraer el contenido del documento y el estilo básico como cursiva, negrita, superíndice?

Gracias por su ayuda

Respuesta

2

O, ya que solicitó una biblioteca, es posible que desee buscar en algo como Docvert. Solo estaba mirando en torno a tu pregunta, y hasta ahora es mi favorita para PHP. Ingresas la palabra ubicación de archivo, la transforma en algo simple con los atributos y todas esas cosas buenas.

+0

parece prometedor, pero tendría que hacer una API. – RageZ

11

docx archivos son en realidad sólo contenedores para XML del documento. Debería poder descomprimir el archivo docx y luego ir a la carpeta de palabras dentro, luego a document.xml. Esto tiene el texto real. Pero cosas como las fuentes y los estilos están en otros archivos xml en el contenedor docx, por lo que es probable que desee perder el tiempo y descubrir qué es qué y cómo hacer coincidirlo (empiezo por usar espacios de nombres, apuesto).

Pero sí, descomprima el archivo, luego use simplexml para convertirlo en algo con lo que realmente pueda meterse.

+0

Gracias, pero me pregunto si alguien no vino con una biblioteca para hacer eso. Haría un poco de procesamiento XSLT si realmente lo necesito. – RageZ

+0

Ver mi otra respuesta. Lo único que no me gusta es la falta de API – Anthony

+0

fácil de encontrar, la clase TbsZip puede leer (e incluso editar) el contenido de los archivos comprimidos sin ninguna dependencia ni ningún archivo temporal. El análisis XML se puede hacer con muchas otras herramientas. – Skrol29

0

Convierta un documento docx a un odt usando OpenOffice. Use entonces eZ Components para hacer el análisis sintáctico y la importación. En realidad usan la importación en su CMZ eZ Publish.

4

PHPDocX PRO incluye una clase TransformDoc que puede leer los archivos .docx (zip) y generar XHTML (o PDF) en el que:

... 
require_once 'phpdocx_pro/classes/TransformDoc.inc'; 
$doc = new TransformDoc(); 
$doc->setStrFile($file->filepath); 
$doc->generateXHTML(); 
$html = $doc->getStrXHTML(); 
+1

Esto requiere una licencia – user478636

+0

@ user478636, No, está disponible en la edición de comunidad. –

Cuestiones relacionadas