Felix Riesterer: Word mittels PHP's COM-Schnittstelle öffnen

Beitrag lesen

Liebe Mitlesende,

für ein ehrenamtliches Projekt benötige ich für die Migration Inhalte von Word-Dateien im HTML-Format. Dazu will ich die Word-Dateien mittels PHP nach HTML konvertieren. Um das zu erreichen haben meine Recherchen ergeben, dass ich aus PHP heraus Word öffnen lassen kann, um Word anzuweisen, dass es die aktuell geöffnete Datei im HTML-Format speichert.

Dieser Automatismus ist deswegen notwendig, da sich die Inhalte der Worddateien immer wieder ändern können, sodass eine einmalige Kovertierung nicht hilft.

Meine Versuche scheitern bereits daran, dass mein Script ohne jegliche Meldung sang- und klanglos abraucht, wenn ich auch nur irgendwie auf eine Methode des instanziierten COM-Objekts zugreifen möchte.

Beispiel:

// Verbindung zu MS Word aufbauen  
$word = new COM('word.application');  
// Fehlerfall abfangen? Keine Ahnung... "or die('Meldung')" ist keine Lösung  
  
$datei = 'w://w-00180.doc'; // Datei von Netzlaufwerk per PHP ermittelt  
  
// Debug-Ausgabe kommt in der Datei noch an:  
debug('Word scheint erreichbar: Version ', $word->Version);  
  
$word->Documents->Open($datei);  
  
// diese Debug-Ausgabe kommt nicht mehr an:  
debug('Word scheint noch immer erreichbar: Version ', $word->Version);  
  
// Mit dieser Zeile entkommentiert erhalte ich überhaupt keine Debug-Ausgaben  
//$word->Close();

Warum erhalte ich noch nichteinmal irgend eine Fehlermeldung in irgendeiner Log-Datei meines Indianers? Im Access-Log steht, dass die Anfrage mit einem 500er beantwortet wurde... mehr aber auch nicht.

Was kann ich tun? Mir fehlen die guten Suchwörter, denn mit "COM" und "PHP" finde ich hauptsächlich die PHP.net-Seiten, von denen ich meinen Code her habe.

Wenn ich auf dem Rechner manuell Word starte und die URL für die Datei eingebe, öffnet Word sie ohne jegliches Murren. An Zugriffsrechten (readonly) kann es also eigentlich nicht liegen... oder doch?

Wer weiß Rat?

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)