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 ... ???
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
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