No se puede abrir Word doc con COM en PHP

Estoy tratando de abrir y leer el contenido de un documento de Word con PHO usando la función COM. Pero cada vez que trato de leer el contenido, me da el siguiente error:

Error fatal: excepción no detectada 'com_exception' con el mensaje 'Fuente:
Descripción Este comando no está disponible porque no hay ningún documento abierto.'

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. He comprobado esto numerosas veces. Los permisos en el archivo están configurados para Full Control. Así que tampoco puede ser eso.


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 esta:

  • Ejecutar "dcomcnfg"
  • Abra Servicios de componentes > Computadoras > Mi PC > Configuración de DCOM
  • Busque el documento de Microsoft Office Word 97-2003 (será algo así traducido a su idioma, así que tómese un tiempo y búsquelo) <-- Atascado en este, no puedo encontrar nada llamado "Microsoft Office..."
  • Haga clic derecho sobre él y abra las propiedades.
  • Elija la pestaña "Identidad"
  • Normalmente, esto se establece en "el usuario que inicia". Debe cambiar esto a "el usuario interactivo" o un usuario administrador de su elección.
  • Aplique esta nueva configuración y pruebe su aplicación COM. Debería funcionar bien ahora.

De todos modos, todavía no tengo esto funcionando. ¿Alguien tiene alguna idea de cómo podría solucionar este error...???

preguntado el 24 de agosto de 12 a las 08:08

Me veo obligado a usar esta computadora con una cuenta de usuario normal, por lo que PHP en IIS nunca puede ejecutar COM (más alguna otra funcionalidad), pero PHP en CLI sí puede. Todavía no lo he probado, pero si realmente tengo que usar COM, lo convertiría en un script CLI y dejaría que el script CGI lo ejecutara en cosas como exec. -

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

1 Respuestas

Acabo de encontrar la solución. Los pasos de los que hablé:

  • Ejecutar "dcomcnfg"
  • Abra Servicios de componentes > Computadoras > Mi PC > Configuración de DCOM
  • Busque el documento de Microsoft Office Word 97-2003 (será s....
  • etc ..

Eso funciona. Pero como dije, no pude encontrar el Microsoft Office Word 97-2003 configuración Así que esto es lo que he hecho para que aparezca en la lista.

  1. Comienzo
  2. Ejecutar
  3. mmc-32
  4. Declarar impuestos
  5. Agregar Quitar complemento
  6. Servicios de componentes
  7. Añada
  8. OK
  9. Raíz de consola
  10. Servicios de componentes
  11. Ordenadores
  12. mi PC
  13. Configuración de DCOM
  14. Aplicación de Microsoft Excel

Así que ahora deberías poder seguir los pasos de mi primera publicación. Y PHP debería poder leer los documentos sin ningún problema.

Respondido 02 Jul 17, 03:07

Me acabas de salvar el día. ¡Gracias! - shasi kanth

Funciona en mi computadora win10. Pero no funciona en mi win7 con word2007... - ch271828n

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

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.