![]() |
![]() |
Cool 05.04.2004 - 10:51 | Есть класс, но я знаю не все его методы а доки по этому делу в инете не много ( COM("word.application") ) Возможно я могу ошибаться, но, кажется, я где-то и когда-то видел функцию, которая возвращает методы объекта, переданного ей в качестве параметра. Поискал в инете - пусто. Если я не ошибаюсь, подскажите имя этой функции. |
Mips 1 - 05.04.2004 - 11:26 |
эти? http://www.devguru.com/Technologies/wsh/quickref/wsh_methods.html |
Mips 2 - 05.04.2004 - 11:29 | может просто открыть справочник по VBa Word и посмотреть там что нужно? |
Cool 3 - 05.04.2004 - 12:05 |
№1: Не, не эти. Тогда уж проще залезть в MSDN и узнать там, что собсно я и уже сделал. Там есть примеры для VBA и C#. НО там все немного по другому чем в ПХП. К примеру: rng.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphCenter; Я думаю не стоит пояснять, куда пошлет ПХП есть дать ему эту строчку (естественно подставив вместо . -> и имена объектов поменять) В ПХП эта строчка выглядит так: $word->Selection->ParagraphFormat->Alignment=1; Но это все лирика и отступление. Мне по сути, необходимо объединить 2 ячейки таблицы. Информации по этому в справочнике по VBA я не нашел. Но все таки нашел фукнцию, чтобы узнать методы класса: get_class_methods но наткнулся на такую проблему.. делаю все, как в мануале: $w=new COM("word.application"); $class_name=get_class($w); echo $class_name."<br>"; $methods=get_class_methods($class_name); foreach($methods as $mthod_name) echo $method_name."<br>"; $w->Quit(); В ответ получаю лишь: COM Т.е. имя класса объекта. Методы он вупор не хочет показывать. Оно и понятно, методы различны, в зависимости от параметра, переданного в конструктор, но меня это не устраивает... |
Mips 4 - 05.04.2004 - 15:00 |
Я как-то не задавался такой целью. Мне хватает мануала VBa Word. Почти всё, что там есть работает и тут. Тока это... СОМ работает тока в win32 если что. У тебя хостинг на какой оси? ;) Кстати, ты не одинок, у буржуев тоже такие траблы с получением списка методов. Посмотри последний ответ на php.net/get-class-methods И вообще. Если ты так будешь работать с COM'ом, то надолго тебе памяти не хватит. Так ты не выгрузишь из памяти ворд. Каждый зашедший юзер будет запускать новый ворд и он будет висеть в памяти. $w->Visible = 0; $w->Quit(); @$w->Release(); $w = null; Удачных поисков :) Найдёшь способ получения методов - стукни в асю. |
Cool 5 - 05.04.2004 - 15:57 |
Оке, пошерстю мануалы по ВБа. Конечно вин32. Да, я посмотрю, как только у меня маршрут поднимется до php.net сутра трасерт не идет, на 23ем шаге падает. Прокси использовать не могу :\ Но что-то мне подсказывает что я не найду ответ. Если верить мануалу: ( http://www.atom.ru/~cool/heap/com.html#faq.com.q13 ) то ответа на сей день нет и не предвидется. Хотя в принципе можно попробовать с помощью method_exists чисто перебором найти методы, поскольку в качестве аргумента она принимает не имя класса, а объект класса, но что-то такой вариант меня не прет ;( С памятью проблем вроде нет, смотрел в диспетчере задач - все нормально закрывается, процесс уничтожается, память освобождается. Но все равно допишу как ты посоветовал. Пасиб |
q1 6 - 05.04.2004 - 16:35 |
использовать word через com на сервере - это гемор, имхо. чуть что и у тебя появляется зависший ворд в таск менеджере. микрософт даже сами писали в мсдн(точно не помню где), что не рекомендуется использовать word таким образом на сервере. |