2012-08-24 39 views
8

Estoy tratando de abrir y leer el contenido de un documento de Word con PHO utilizando la función COM. Sin embargo, siempre que intente leer el contenido, entonces me da el siguiente error:No puedo abrir el documento de Word con COM en PHP

Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft Word
Description: This command is not available because no document is open.'

tengo el siguiente código:

$word = new \COM ("word.application") or die ("Could not initialise MS Word object."); 
    $word->Documents->Open (realpath("test.doc")); 

    // Extract content. 
    $content = (string) $word->ActiveDocument->Content; 

    echo $content; 

    $word->ActiveDocument->Close(false); 

    $word->Quit(); 
    $word = null; 
    unset($word); 

estoy 100% seguro de que existe el documento de Word. Lo he comprobado muchas veces. Los permisos en el archivo están establecidos en Full Control. Entonces eso tampoco puede ser.


También he leído un comentario en php.net. Dijo que IIS está causando un problema (lo tengo en ejecución). Su solución fue la siguiente:

  • ejecutar "dcomcnfg"
  • Abra Servicios de componentes> Equipos> Mi PC> Configuración DCOM
  • Búsqueda de Microsoft Office Documento de Word 97-2003 (que será algo como esto traducido a su idioma, así que tome un tiempo y buscar para ello) < - Pegado a éste, no puede encontrar cualquier cosa llamada "Microsoft Office ..."
  • Haga clic derecho en él-y abra las propiedades
  • Elija la pestaña "Identidad"
  • Normalmente esto se establece en "el usuario de lanzamiento". Debe cambiar esto a "usuario interactivo" o a un usuario administrador de su elección.
  • Aplique estas nuevas configuraciones y pruebe su aplicación COM. Debería funcionar bien ahora.

En cualquier caso, todavía no lo tengo funcionando. Alguien tiene idea de cómo podría solucionar este error ... ???

+0

Estoy obligado a utilizar esta computadora con una cuenta de usuario normal, por lo que PHP en IIS nunca puede ejecutar COM (más algunas otras funcionalidades), pero PHP en CLI sí. Aún no lo he probado, pero si realmente tengo que usar COM, lo convertiría en un script CLI y permitiría que el script CGI lo ejecute en cosas como 'exec'. – Passerby

+0

Parece que 'word 2007' no necesita esta configuración? No puedo encontrar esta configuración de DCOM para mi palabra 2007. Pero el COM funciona muy bien. Entonces, ¿alguien ayuda? – Turtle

Respuesta

8

Acabo de encontrar la solución. Los pasos yo hablamos de:

  • ejecutar "dcomcnfg"
  • Abra Servicios de componentes> Equipos> Mi PC> Configuración DCOM
  • Búsqueda de Microsoft Office Documento de Word 97-2003 (que será s ... .
  • etc ..

que funciona. Pero como he dicho, no he podido encontrar la configuración Microsoft Office Word 97-2003. Así que esto es lo que he hecho con el fin de hacer que aparece en la lista.

  1. inicio
  2. Run
  3. MMC -32
  4. Archivo
  5. Agregar Quitar complemento
  6. Servicios de componentes
  7. Añadir
  8. OK
  9. raíz de la consola
  10. Servicios de componentes
  11. Computadoras
  12. Mi PC
  13. Configuración DCOM
  14. aplicación Microsoft Excel

Así que ahora usted debe ser capaz de seguir los pasos de mi primer post. Y PHP debería poder leer los documentos sin ningún problema.

+0

Acabas de salvar mi día. ¡Gracias! –

+0

Funciona en mi computadora win10. Pero no funciona en mi win7 con word2007 ... – Turtle

+0

Parece que 'word 2007' no necesita esta configuración? No puedo encontrar esta configuración de DCOM para mi palabra 2007. Pero el COM funciona muy bien. Entonces, ¿alguien ayuda? – Turtle

Cuestiones relacionadas