powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод в WORD
11 сообщений из 11, страница 1 из 1
Вывод в WORD
    #38296666
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется документ WORD - шаблон Договора.
Нужно из PHP вывести некоторые данные в определенные места в шаблоне (не добавлять так, чтобы все сдвигалось, а именно заменить место для символа на 1 символ из PHP, чтобы разметка не портилась)
Желательно чтобы не было дополнительного софта.
Как это сделать?
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296722
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При помощи COM , например. Самый "прямой" способ.
Если же доки ограничиваются форматом .docx, то там обычный зазипованый xml - правьте как вздумается.
Альтернативно - сохранить HTML как .doc - Ворд понимает более-менее этот финт ушами.
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296836
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал сохранять html в формате doc - теги остаются, так что форматировать не получается.
С этим COM разобраться не могу, так как не знаю английского.
Попробовал запустить 1 пример с WORD - вроде бы все просто, ворд запустился и текст написался.
Но вот как открыть уже готовый doc и заменить там определенный символ на определенной строке не меняя разметки?
Может есть пример еще какой у кого-то?
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296844
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитал на странице ниже, вроде как есть пример с открытием.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
com_load_typelib('Word.Application');

$word = new COM("word.application") or die("Unable to instantiate Word");

// use like this. Place your's word file in C drive
$word->Documents->Open('C:/1.doc');
echo $current_date = date("m/d/Y");
$tim= date("Y-m-d");

$info_array=array(  "Name"      => "pavan",
                    "TODAYDATE" => "$tim" ,
                    "Company"   => "sparsh" ,
                    "project"   => "Myrepc",
                    "Features"   => "Auto fill form editor") ;

foreach($info_array as $bookmarkname => $re)
    {
        $objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname);
        $range = $objBookmark->Range;
        echo $range->Text = $re ;
    }
$new_file = "c:/2.doc";
$word->Documents[1]->SaveAs($new_file);
$word->ActiveDocument->Close(false);



Но у меня выводит ошибку
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Word<br/><b>Description:</b> ���� �� ������. (C:\//1.doc)' in Z:\home\autostore.ru\www\index.php:13 Stack trace: #0 Z:\home\autostore.ru\www\index.php(13): variant->Open('C:/1.doc') #1 {main} thrown in Z:\home\autostore.ru\www\index.php on line 13
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296847
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanкак открыть уже готовый doc и заменить там определенный символ на определенной строке не меняя разметки?Это смотрите уже в документации по ворду. Суть - ворд предоставляет COM-сервер, через который можно использовать его (ворда) свойства и методы.
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296930
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanПопробовал сохранять html в формате doc - теги остаются, так что форматировать не получается.
С этим COM разобраться не могу, так как не знаю английского.
Попробовал запустить 1 пример с WORD - вроде бы все просто, ворд запустился и текст написался.
Но вот как открыть уже готовый doc и заменить там определенный символ на определенной строке не меняя разметки?
Может есть пример еще какой у кого-то?

проще всего врубаться в то как работать с вордом через оле...да и через VBA...

запускаешь ворд. включаешь запись макроса!!! щёлкаешь действия какие тебе надо. Останавливаешь запись, и чешеш в код макроса, и смотришь, как ворд это сделал.

знаний там особо не надо, уверен ты по коду поймёшь что он означает.

я когдато на вба делал - куча файлов хтмл (скачаная книга с сайта ввиде штмл страничек - странички в отдельных файлах)

вот стала задача распечатать, ток это не помещалось на а4...

тоесть надо открыть файл, срезать верх низ, левую колонку, ну уже проставить границы ддокумента печать. - так и делал... записывал макрос... погуглил лишь как узнать список файлов в директории и и фактически код макроса в цикл по всем файлам кинул с парой замен констант на переменую цикла.

эт по опыту говорю. с экселем тоже самое...запись макроса и смотрим как это делаеться.
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296946
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понял, макрос это последовательность действий в ворде. Допустим я разберусь с этими макросами и сделаю макрос создания этого шаблона. Как мне собственно потом этот код применить в PHP?
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296948
gfan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне вообще нужно распечатать договор, и не обязательно в WORD. Но данные беру из MySQL а распечатать нужно с форматированием. Так что первое что в голову пришло - WORD.
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296966
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gfanраспечатать нужно с форматированиемЧем же HTML не устраивает?
...
Рейтинг: 0 / 0
Вывод в WORD
    #38296973
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для сохранения в ворд-совместимом формате можно использовать RTF - под него есть классы пхпшные. Кстати, при желании документ RTF вполне можно использовать как шаблон. Если нужно только текст вставить в определенные места - достаточно банального str_replace().
...
Рейтинг: 0 / 0
Вывод в WORD
    #38297361
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, тынц .
Для этой штуки даже сервера подвендой не нужно.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод в WORD
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]