Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Word с php создание документа, сохранение
Форумы портала PHP.SU » » Операционная система и системные вызовы » Word с php создание документа, сохранение

Страниц (1): [1]
 

1. Shizzaf - 13 Мая, 2011 - 19:51:52 - перейти к сообщению
Есть простенький скрипт, который открывает word, пишет туда пару слов, сохраняет документ и закрывает его. Все работает, но при попытке открыть получившийся документ чем либо кроме MS Word выдаётся всякая белиберда..
PHP:
скопировать код в буфер обмена
  1. <?
  2. $word = new COM("word.application");
  3. $word->Visible = 0;
  4. $word->Documents->Add();
  5. $word->Selection->TypeText('Any text');
  6. $word->Documents[1]->SaveAs("test1.htm");
  7. $word->Quit();
  8. unset($word);
  9. ?>

помогите пожалуйста, для курсовой очень надо =(
2. molchun201 - 13 Мая, 2011 - 19:54:32 - перейти к сообщению
кодировка
3. Shizzaf - 13 Мая, 2011 - 19:57:29 - перейти к сообщению
Нет, пробовала нотпадом++ просматривать в разной кодировке и преобразовывать тоже пробовала, без толку

и непонятно, то ли лыжи не едут, то ли...
4. Мелкий - 13 Мая, 2011 - 20:00:26 - перейти к сообщению
0) нафиг ворд для создания невордового документа?
1) вероятно документ сохранён в формате doc.
5. Shizzaf - 13 Мая, 2011 - 20:03:15 - перейти к сообщению
надо так.. через ворд..=) вообще запутанная история..
А простите за глупый вопрос, как так он сохраняет в формате doc если написано сохранять в htm? Ну и файлик полученный с расширением htm все таки...
6. molchun201 - 13 Мая, 2011 - 20:09:21 - перейти к сообщению
так а жёсткую кодировку можно поставить?
7. Мелкий - 13 Мая, 2011 - 20:10:02 - перейти к сообщению
Shizzaf пишет:
А простите за глупый вопрос, как так он сохраняет в формате doc если написано сохранять в htm? Ну и файлик полученный с расширением htm все таки...

Расширение файла - часть имени файла. Значения не имеет, может быть абсолютно любым.
Переименуйте на досуге txt в jpg, затем откройте текстовым редактором и откройте именно изображение в текстовом редакторе.

Непосредственно по COM'у помочь не смогу, я и сам мс ворд последний раз видел с год назад.
8. Shizzaf - 13 Мая, 2011 - 20:16:53 - перейти к сообщению
Цитата:
так а жёсткую кодировку можно поставить?

нет вроде, ну я по крайней мере пока не нашла, хотя и очень старалась.
Цитата:
Переименуйте на досуге txt в jpg, затем откройте текстовым редактором и откройте именно изображение в текстовом редакторе.

Переименовала, помогло это не сильно, т.к. примерно такая же белиберда как и с документами... неужели по умолчанию сохраняет все же как и вы сказали в doc?
Спасибо и на том =)
9. Мелкий - 13 Мая, 2011 - 21:34:01 - перейти к сообщению
Shizzaf пишет:
т.к. примерно такая же белиберда как и с документами...

Именно мысль о том, что расширение файла никак не связано с форматом файла и доношу.

Покурите маны про COM("word.application") в направлении задания формата файла для сохранения.
10. Shizzaf - 14 Мая, 2011 - 06:45:43 - перейти к сообщению
Спасибо =) буду искать.
11. Shizzaf - 20 Мая, 2011 - 13:01:54 - перейти к сообщению
Проблема действительно была в том что ворд по умолчанию сохранял в doc формате) нашла как указать нужный формат.
PHP:
скопировать код в буфер обмена
  1. <?
  2.  
  3. $word = new COM("word.application") or die("Ошибка запуска Word");;
  4.  
  5. $word->Visible = 0;
  6. $word->Documents->Add();
  7. $word->Selection->TypeText('Any text');
  8. $word->ActiveDocument->SaveAs('d:\\test.html',8); // вот здесь после пути к файлу нужно указать цифру нужного формата.
  9. $word->Quit();
  10. unset($word);
  11. ?>

если кому-то нужно, то я знаю что 6-это rtf а 1 это dot.
Спасибо за помощь.
12. Jerrod - 30 Ноября, 2012 - 15:27:04 - перейти к сообщению
Shizzaf пишет:

$word->ActiveDocument->SaveAs('d:\\test.html',8); // вот здесь после пути к файлу нужно указать цифру нужного формата.
$word->Quit();
unset($word);
?>


если кому-то нужно, то я знаю что 6-это rtf а 1 это dot.


вот циферки для всех форматов
http://msdn[dot]microsoft[dot]com/en-us/[dot][dot][dot]ffice[dot]12%29[dot]aspx

 

Powered by ExBB FM 1.0 RC1