PHP COM читать MS Word .. работает отлично ... НО - PullRequest
1 голос
/ 19 марта 2012

Я пытаюсь читать текстовые файлы, используя приведенный ниже код (я его откуда-то получил).

Но, хотя он отлично работает в моей системе (Windows 7 Home, 64-bit), онне работает в системе человека, которому это действительно нужно (Windows 7 Ultimate, 32-разрядная версия).

Я пробовал это на другом ноутбуке (Windows 7 Ultimate, 32-разрядная версия), и это неработать над этим тоже.К сожалению, у нас нет большего разнообразия ОС здесь, поэтому я застрял с этими двумя типами Windows 7. И да ... мы пытаемся разработать приложение для файлов .doc, поэтому нам абсолютно необходим COM,Мы используем библиотеки для чтения / записи .docx, но нашему клиенту нужен .doc ....

Проверьте мой код ...

class wordconvert
{
    /* variables */
    var $filename;  # Original File name with optional path.
                    # If no path provided, will be looked for in 
                    # My Documents.
    var $convert_to=0;
                   # Extension (as a string) or number (See Doc on 
                   # SaveAs method below),doc extension is the default.
    var $visible=0;# 0=Hidden, 1= Visible, hidden is the default.

    /* Constructor */

    function wordconvert($filename,$convert_to=0,$visible=0) 
    {
        if (!file_exists($filename))
        {
            echo "File $filename doesn't exist";
            exit();
        }

        $filename_path=  substr($filename,0,-4);

        if (is_string ($convert_to))
        {
            $convert_to= strtolower($convert_to);

            switch ($convert_to) 
            {
                case "doc":
                    $convert_to=0;
                    Break;
                case "dot":
                    $convert_to=1;
                    Break;
                case "txt":
                    $convert_to=2;
                    Break;
                case "rtf":
                    $convert_to=6;
                    Break;
                case "htm":
                    $convert_to=8;
                    Break;
                case "html":
                    $convert_to=8;
                    Break;
                case "asc":
                    $convert_to=9;
                    Break;
                case "wri":
                    $convert_to=13;
                    Break;
                case "wps":
                    $convert_to=28;
                    Break;
                default:
                    $convert_to=0;
            }
        }
        # Instantiate MSWord
        $word=new COM("Word.Application") or die("Cannot start MS Word");

        $word->visible = $visible ;

        #Open the original file in word.
        echo $filename;
        $word->Documents->Open($filename)or die("Cannot find file to convert");

        #Save the new file
        $word->ActiveDocument->SaveAs($filename_path,$convert_to); 

        /*
        Doc on quit method:
        expression.Quit(SaveChanges, Format, RouteDocument)
        */

        $word->quit(0); #0: Quit without saving
        # print "done!";

    }#End of func

}#End of class

Так что нам в основном нужно использоватьwordconvert() Функция, указанная выше, и хотя она работает как магия в Windows 7 Home, 64 бит, она просто вымирает, говоря:

"Не удается найти файл для конвертации"

в windows 7 ultimate, 32 bit !!

Я также опробовал следующее решение ... http://figured -it-out.com / figured-out.php? sid = 24

но ничего не произошло!Любые идеи .... И да ... конфигурация php почти одинакова на обоих компьютерах ...

спасибо, ребята ... если бы не вы, ребята, люди, подобные мне, были быбыл безработным !!:)

...