Word açmak için COM kullanma

2 Cevap php

Aslında i http://php.net/manual/en/class.com.php adlı bulunan bazı kodları çalışıyorum

  <?php
    // starting word
    $word = new COM("word.application") or die("Unable to instantiate Word");
    echo "Loaded Word, version {$word->Version}\n";

    //bring it to front
    $word->Visible = 1;

    //open an empty document
    $word->Documents->Add();

    //do some weird stuff
    $word->Selection->TypeText("This is a test...");
    $word->Documents[1]->SaveAs("Useless test.doc");


    //closing word
    $word->Quit();

    //free the object
    $word = null;
    ?> 

Ama bu işe görünmüyor. Ben Word 2007 kullanıyorum ve şu olsun:

Loaded Word, version 12.0 Fatal error: Call to undefined method variant::SaveAs() in C:\xampp\htdocs\final\testq.php on line 14

Herkes bu sorunu çözebilir? I Word 2007 kullanıyorum diye mi?

2 Cevap

Documents nesne bir koleksiyon nesnesi değil, bir dizidir. Deneyin:

$word->Documents(1)->SaveAs("Useless test.doc");

Veya

$word->ActiveDocument->SaveAs("Useless test.doc");

Sizin örnek Window 7, Word 2003 ve Word 2007 ile hem de benim için iyi çalışır. Bu nedenle sorun, bir yanlış yüklenmiş / yapılandırılmış Kelime olabileceğini varsayıyorum. Sorun giderme için aşağıdakileri yapın:

  • Kelime yüklemeyi onarmak
  • emin Word komut altında çalışan en az bir kez aynı kullanıcı olarak başlamıştır yapmak
  • Tüm eklentileri devre dışı bırakmak
  • %APPDATA%\Microsoft\Templates\ gidin ve Normal.dot (x) dosyayı yeniden adlandırmak
  • aslında belirtilen bir konuma dosya kaydetmek için gerekli izinlere sahip olduğundan emin olun, mutlak bir yol deneyin