Fehler beim Öffnen von Word-Dokumenten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fehler beim Öffnen von Word-Dokumenten

    Hallo Community,
    ich möchte mit php ein Word-dokument erstellen - zum testen habe ich folgenden Code gewählt:

    <?php
    $Text = "Hallo Welt!";
    $Word = new COM("word.application") or die("Konnte Word nicht instantiieren!");

    echo"Word ist geladen, Version: ", $Word->Version, "<br>";

    $Word->Visible = 0;
    $Word->Documents->Add();
    $Word->Selection->Font->Name = "Arial";
    $Word->Selection->Font->Size = 12;
    $Word->Selection->Font->ColorIndex= 4;
    $Word->Selection->TypeText($Text);
    $Word->Documents[1]->SaveAs("c:\dokument.doc");
    $Word->quit();

    echo"Worddokument wurde erstellt!";
    ?>


    Führe ich den Code aus, bekomme ich folgenden Text plus Fehlermeldung angezeigt:

    Word ist geladen, Version: 10.0
    Fatal error: Call to a member function TypeText() on a non-object in C:\Inetpub\DWH_VIVAINFO\word.php on line 13

    Wenn ich das richtig verstehe wird das COM-Objekt doch angelegt und ich kann auch darauf zugreifen. Warum aber nicht auf die Funktion TypeText()?

    Kann mir jemand bitte helfen?

    Danke im Voraus.

    HotteHrubesch
    Zuletzt geändert von HotteHrubesch; 23.01.2007, 10:33.

  • #2
    Re: Fehler beim Öffnen von Word-Dokumenten

    Bitte [php]-Tags verwenden statt [color] (dein Posting editieren), das macht die Sache lesbarer!

    Wenn ich das richtig verstehe wird das COM-Objekt doch angelegt und ich kann auch darauf zugreifen. Warum aber nicht auf die Funktion TypeText()?
    Nutze var_dump(), um dir die Struktur deines Objektes anzusehen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hab ich gemacht. Nur bringt mich das auch nicht weiter. Bekomme folgende Antwort:
      object(com)#1 (0) { }

      Ist das Objekt leer oder wie habe ich das zu verstehen? Und viel wichtiger: Wie kann ich das Problem beseitigen?

      Kommentar


      • #4
        $Word->Selection oder $Word?
        ersteres fänd ich spannender.

        Kommentar


        • #5
          Habe es jetzt mit var_dump($word->Selection); probiert.
          Jetzt meldet PHP NULL zurück.

          Was heißt das jetzt für mich?

          Kommentar


          • #6
            Original geschrieben von HotteHrubesch
            Habe es jetzt mit var_dump($word->Selection); probiert.
            Jetzt meldet PHP NULL zurück.

            Was heißt das jetzt für mich?
            dass die Methode/Properties nicht existiert IMHO wenn überhaupt dann ->Selections->... oder ->Select(). Mach doch bei $Word oder du öffnest MS-Word->Extras->Makros->VB Editor dann This Document auswählen -> im rechten Fenster me + . eingeben, der Intellisense-Mechanismus wird dir schon zeigen, was dir überhaupt zur Verfügung stehen.

            Kommentar


            • #7
              Hab das mal probiert. Mit $word->Selections gibt es nichts, $word->Select() auch nichts.

              Probeweise habe ich mal $word.Selection ausprobiert, und siehe da: var_dump() liefert jetzt string(27) "Microsoft WordSelection" zurück. Heißt das jetzt, dass ich das COM-Objekt mit einem "." als Trennzeichen ansprechen muss?

              Kommentar


              • #8
                Original geschrieben von HotteHrubesch
                Probeweise habe ich mal $word.Selection ausprobiert, und siehe da: var_dump() liefert jetzt string(27) "Microsoft WordSelection" zurück. Heißt das jetzt, dass ich das COM-Objekt mit einem "." als Trennzeichen ansprechen muss?
                Das glaube ich nicht, Tim ...

                Sieht mir eher so aus, als ob für Selection als undefinierte Konstante der String "Selection" angenommen wird, und durch den Punkt dann eine Stringverkettung mit der "Umwandlung" des COM-Objektes in einen String, was dann "Microsoft Word" ergeben dürfte, durchgeführt wird.
                Bei auf E_ALL gestelltem error_reporting würde ich eine entsprechende Meldung erwarten.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X