2012-08-24 18 views
8

Sto tentando di aprire e leggere il contenuto di un documento di Word con PHO utilizzando la funzione COM. Ma ogni volta che provo a leggere il contenuto, allora mi dà il seguente errore:Impossibile aprire Word doc con COM in PHP

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

ho il seguente codice:

$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); 

Sono sicuro al 100% che il documento di Word esiste. Ho controllato questo numerose volte. Le autorizzazioni per il file sono impostate su Full Control. Quindi non può essere neanche questo.


Ho anche letto un commento su php.net. Ha detto che IIS sta causando un problema (ho quella in esecuzione). La sua soluzione era questa:

  • eseguire "dcomcnfg"
  • Aprire Servizi componenti> Computer> Risorse del computer> Config DCOM
  • Ricerca per Microsoft Office Word 97-2003 documento (sarà qualcosa di simile tradotto in la lingua, in modo da prendere un po 'e la ricerca di esso) < - Bloccato a questo, non riesce a trovare nulla di definito "Microsoft Office ..."
  • tasto destro del mouse su di esso e-aprire le proprietà
  • Scegli la scheda "Identità"
  • Normalmente questo è impostato su "l'utente di avvio". Devi cambiarlo con "l'utente interattivo" o con un utente amministratore di tua scelta.
  • Applicare queste nuove impostazioni e testare l'applicazione COM. Dovrebbe funzionare bene ora.

In ogni caso, non ho ancora funzionato. Qualcuno ha idea di come sia possibile risolvere questo errore ... ???

+0

Sono costretto a utilizzare questo computer con un normale account utente, quindi PHP in IIS non può mai eseguire COM (più alcune altre funzionalità), ma PHP in CLI può. Non ho ancora provato questo, ma se devo davvero usare COM, lo farei uno script CLI e lasciare che lo script CGI lo esegua in cose come 'exec'. – Passerby

+0

Sembra che 'word 2007' non abbia bisogno di questa configurazione? Non riesco a trovare questo DCOM Config per la mia parola 2007. Ma la COM funziona molto bene. Quindi qualcuno aiuta? – Turtle

risposta

8

Ho appena trovato la soluzione. I passi ho parlato:

  • eseguire "dcomcnfg"
  • Aprire Servizi componenti> Computer> Risorse del computer> Config DCOM
  • Ricerca per Microsoft Office Word 97-2003 documento (che sarà s ... .
  • ecc ..

che funziona. Ma, come ho detto, non riuscivo a trovare il Microsoft Office Word 97-2003 config. Quindi questo è quello che ho fatto in modo da farlo apparire nella lista.

  1. Inizio
  2. Run
  3. mmc -32
  4. File
  5. Aggiungi Rimuovi snap-in
  6. Servizi componenti
  7. Aggiungi
  8. OK
  9. Directory principale
  10. Servizi componenti
  11. Computer
  12. Risorse del computer
  13. Config DCOM
  14. Microsoft Excel Application

Così ora si dovrebbe essere in grado di seguire i passaggi dal mio primo post. E PHP dovrebbe quindi essere in grado di leggere i documenti senza problemi.

+0

Hai appena salvato la mia giornata. Grazie! –

+0

Funziona sul mio computer win10. Ma non funziona su mia win7 con word2007 ... – Turtle

+0

Sembra che 'word 2007' non abbia bisogno di questa configurazione? Non riesco a trovare questo DCOM Config per la mia parola 2007. Ma la COM funziona molto bene. Quindi qualcuno aiuta? – Turtle

Problemi correlati