Я попытался воспользоваться вот этой статьей: http://habrahabr.ru/post/119551/
Сайт у меня на Joomla. Zend стоит и soap включен. Но я не понимаю, куда нужно вставлять вот это вот и как это можно использовать в форме на сайте :
// Создаём объект для работы с сервисом и передаём свой логин и пароль
$livDoc = new Zend_Service_LiveDocx_MailMerge(array(
'username' => 'yourusername',
'password' => 'yourpassword'
));
// Передаём значения для наших mergeFields в Word шаблоне
$livDoc->assign('orderNum','Номер заказа');
$livDoc->assign('orderDay',date('d', 'Дата заказа'));
// Задаём путь к файлу шаблона и передаём его объекту
$documentPath = 'contract_bid_for_customer.doc';
$livDoc->setLocalTemplate($documentPath);
// заполняем документ с помощью сервиса
$livDoc->createDocument();
$doc = $livDoc->retrieveDocument('doc');
// отдаём готовый документ для скачки
header("Cache-Control: public");
header("Content-Description: File Transfer");
$fileName = "Документ.doc";
header("Content-Disposition: attachment; filename=$fileName");
header("Content-Type: application/msword");
header("Content-Transfer-Encoding: binary");
echo $doc;
die;
Если же вы предпочитаете plain php, то голодными тоже не останетесь.
Для работы понадобится включенный модуль soap, в большинстве случаев он включен по умолчанию, но проверьте как обстоит дело у вас:
phpinfo();
Раздел SOAP
Вы должны увидеть Soap client enabled и Soap server enabled.
// Выключаем WSDL кэширование
ini_set ('soap.wsdl_cache_enabled', 0);
// Выставляем временную зону
date_default_timezone_set('Europe/Moscow');
// Создаём экземпляр объекта Soap и передаём ему свои учетные данные
$soap = new SoapClient('https://api.livedocx.com/1.2/mailmerge.asmx?WSDL');
$soap->LogIn(
array(
'username' => 'yourusername',
'password' => 'yourpassword'
)
);
// Путь к файлу шаблона
$data = file_get_contents('contract_bid_for_customer.doc');
// Установка расширения файла .doc и параметров кодирования
$soap->SetLocalTemplate(
array(
'template' => base64_encode($data),
'format' => 'doc'
)
);
// Задаём значения переменным
$fieldValues = array (
'orderNum' => 'Номер заказа',
'orderDay' => 'Дата заказа'
);
// Эта хитрая функция преобразует массив c переменными в то что понимает SOAP
function assocArrayToArrayOfArrayOfString ($assoc)
{
$arrayKeys = array_keys($assoc);
$arrayValues = array_values($assoc);
return array ($arrayKeys, $arrayValues);
}
// Передаём переменные в наш LiveDocx объект
$soap->SetFieldValues(
array (
'fieldValues' => assocArrayToArrayOfArrayOfString($fieldValues)
)
);
// Формируем документ
$soap->CreateDocument();
$result = $soap->RetrieveDocument(
array(
'format' => 'doc'
)
);
$doc = base64_decode($result->RetrieveDocumentResult);
// Разрываем сессию с SOAP
$soap->LogOut();
// Отдаём вордовский файл
header("Cache-Control: public");
header("Content-Description: File Transfer");
$fileName = "Документ.doc";
header("Content-Disposition: attachment; filename=$fileName");
header("Content-Type: application/msword");
header("Content-Transfer-Encoding: binary");
echo $doc;
die;
Пожалуйста, помогите новичку