Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 (PHPWORD) Ошибка при заполнение шаблона?  [new]
SMART_001
Member

Откуда: Astana
Сообщений: 54
Добрый вечер! выдает ошибку
Fatal error: Call to a member function loadTemplate() on a non-object in W:\domains\test.com\word.php on line 7


<?php

require 'vendor/autoload.php';

$phpWord = new  \PhpOffice\PhpWord\PhpWord();

$document = $PHPWord->loadTemplate('Template.docx'); //шаблон
$document->setValue('d_num', '777'); //номер договора
$document->setValue('d_date', '04.10.2014'); //дата договора
$document->setValue('last_name', 'Никоненко'); //фамилия
$document->setValue('name', 'Сергей');// имя
$document->setValue('surname', 'Васильевич');// отчество

header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="my dream.docx"');
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');

$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$xmlWriter->save("php://output");					
14 дек 18, 16:09    [21764191]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
SMART_001
Member

Откуда: Astana
Сообщений: 54
SMART_001, теперь реакция нет, из-за чего?

<?php

require 'vendor/autoload.php';

$phpWord = new  \PhpOffice\PhpWord\PhpWord();

$document = $phpWord->loadTemplate('Template.docx'); //шаблон
$document->setValue('d_num', '777'); //номер договора
$document->setValue('d_date', '04.10.2014'); //дата договора
$document->setValue('last_name', 'Никоненко'); //фамилия
$document->setValue('name', 'Сергей');// имя
$document->setValue('surname', 'Васильевич');// отчество
$document->save('php://output'); //Сохраняем результат в файл
14 дек 18, 17:17    [21764252]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
vkle
Member

Откуда: Самара
Сообщений: 14373
Мда... "Тихо сам с собою я веду беседу"
А что есть? И что должно быть?
14 дек 18, 19:50    [21764398]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
SMART_001
Member

Откуда: Astana
Сообщений: 54
vkle,

готовый шаблон есть , просто при вызове заполнить автоматический спросить куда соранить
14 дек 18, 21:08    [21764447]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
SMART_001
Member

Откуда: Astana
Сообщений: 54
vkle,
заполняет и сохраняет где лежит шаблон, как можно сделать выбор был типа сохранить как
спасибо
<?php

require 'vendor/autoload.php';

$phpWord = new  \PhpOffice\PhpWord\PhpWord();

$document = $phpWord->loadTemplate('Template.docx');
$document->setValue('d_num', '001');
$document->setValue('d_date', '15.11.2018');
$document->setValue('last_name', 'Ivanov');
$document->setValue('name', 'Ivan');
$document->setValue('surname', 'Ivanovich');
$document->saveas('result.docx');
14 дек 18, 21:37    [21764466]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
SMART_001
Member

Откуда: Astana
Сообщений: 54
vkle,
при открытие word ошибку дает как на картинке
<?php

require 'vendor/autoload.php';
$y1=$_POST["firstname"];
$y2=$_POST["lastname"];
$phpWord = new \PhpOffice\PhpWord\PhpWord();

$document = $phpWord->loadTemplate('Template.docx');
$document->setValue('d_num', '001');
$document->setValue('d_date', '15.11.2018');
$document->setValue('last_name', $y2);
$document->setValue('name', $y1);
$document->setValue('surname', 'Ivanovich');
$document->save('result.docx');

header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Disposition: attachment;filename="result.docx"');
header('Cache-Control: max-age=0');
$writer = PHPWord_IOFactory::createWriter($phpWord, 'Word2007');
$writer->save('php://output');

К сообщению приложен файл. Размер - 20Kb
14 дек 18, 21:56    [21764479]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
SMART_001
Member

Откуда: Astana
Сообщений: 54
vkle,

вот шаблон

К сообщению приложен файл (Template.docx - 12Kb) cкачать
14 дек 18, 21:58    [21764485]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
vkle
Member

Откуда: Самара
Сообщений: 14373
Ну так запрос выдается теперь, файл сохраняется? Возможно, в файл попадает какой-то мусор, вроде BOM, пробелов/табуляции или перевода строки. Посмотрите какой-нибудь HEX-смотрелкой начало файла.
И ещё, не понятно, это в инструкции к PhpWord так сказано, что надо делать сперва
$document->save('result.docx');
а потом ещё и
$writer->save('php://output');
Или что-то из двух тут лишнее?

PS: Инструкцию я не читал, не знаю, как должно быть.
14 дек 18, 22:05    [21764492]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
SMART_001
Member

Откуда: Astana
Сообщений: 54
vkle, уже второй день не решить эту проблему и таблица не создает((((. в чем проблема?

Результат: готовый шаблон вызвать потом заполнить и спросить сохранить как? все

<?php

require 'vendor/autoload.php';

use PhpOffice\PhpWord\Style\Table;

$y1=$_POST["firstname"];
$y2=$_POST["lastname"];
$shapka="проверка";
$tv_abzas1="проверка";
$tv_table="-";
$Ex_abzas1="11";
$Ex_abzas2="23";
$Ex_abzas3="22";
$Ex_abzas4="44";
$Ex_tableagra1="---";

$Im_abzas1="22";
$Im_abzas2="77";
$Im_abzas3="78";
$Im_abzas4="499";
$Im_tableagra1="--";

$Ex_table1="здеесь должен быть таблица";
$Im_table1="таблица";


$phpWord = new  \PhpOffice\PhpWord\PhpWord();

$document = $phpWord->loadTemplate('Template.docx');
$document->setValue('shapka', $shapka);
$document->setValue('tv_abzas1', $tv_abzas1);
$document->setValue('tv_table', $tv_table);
$document->setValue('Ex_abzas1', $Ex_abzas1);
$document->setValue('Ex_abzas2', $Ex_abzas2);
$document->setValue('Ex_abzas3', $Ex_abzas3);
$document->setValue('Ex_abzas4', $Ex_abzas4);
$document->setValue('Ex_tableagra1', $Ex_tableagra1);

$document->setValue('Im_abzas1', $Im_abzas1);
$document->setValue('Im_abzas2', $Im_abzas2);
$document->setValue('Im_abzas3', $Im_abzas3);
$document->setValue('Im_abzas4', $Im_abzas4);
$document->setValue('Im_tableagra1', $Im_tableagra1);

$document->setValue('Ex_table1', $Ex_table1);
$document->setValue('Im_table1', $Im_table1);

$phpWord->addTableStyle('Colspan Rowspan', $styleTable);
      $table = $phpWord->addTable('Colspan Rowspan');

for ($row = 1; $row <= 8; $row++) { $table->addRow();
    for ($cell = 1; $cell <= 5; $cell++) { $table->addCell(1750)->addText("Row {$row}, Cell {$cell}");
    }
}

$document->save('zzeport.docx');

header("Content-Description: File Transfer");
header('Content-Disposition: attachment; filename="zzeport.docx"');
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=utf-8');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
// Saving the document as Docx file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('php://output');
15 дек 18, 11:28    [21764689]     Ответить | Цитировать Сообщить модератору
 Re: (PHPWORD) Ошибка при заполнение шаблона?  [new]
vkle
Member

Откуда: Самара
Сообщений: 14373
SMART_001
в чем проблема?
А это нормально, что переменная $styleTable нигде не определена до использования в методе addTableStyle() и нигде не используется после?
15 дек 18, 15:02    [21764820]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить