как мога да запазя PdfModel във файл в Zend Framework 2?

Използвам ZF2 и DOMPDFModule\View\Model\PdfModel за генериране на pdf. Когато се показва като изглед, всичко е наред, но не мога да намеря как да го запазя във файл (в кода, без да питам потребителя за изтегляне). Имам код като този:

use DOMPDFModule\View\Model\PdfModel;

$viewModel = new PdfModel($variables);
$viewModel->setTemplate('pos/stocklist/' . $type);
$viewModel->setOption('paperSize', 'a4');
$viewModel->setOption('paperOrientation', 'portrait');
$viewModel->setOption('fileName', 'stock.pdf');

Опитах се да го направя по този начин, но методът за изобразяване не съществува:

$output = $viewModel->render();
$handle = fopen($file_path.DIRECTORY_SEPARATOR.$file_name , 'w');
fwrite( $handle,$output );
fclose( $handle );

Оценявам помощта ти.


person user2248850    schedule 05.04.2013    source източник


Отговори (1)


Пример на страницата README в github на проекта показва, че $viewModel се връща от действието на контролера. Освен това опцията filename, която вече сте посочили, трябва да принуди файлът да бъде изтеглен, вместо да се показва в браузъра.

Авторът е внедрил стратегия/изобразяване на изглед, който създава действителния dompdf обект и автоматично изобразява модела на изглед вместо вас, подобно на съществуващото поведение на zf2, така че не е нужно да прекъсвате жизнения цикъл на MVC.

person James Newell    schedule 14.07.2013
comment
Аз съм в ситуация, подобна на оригиналния плакат. Трябва да изобразя PDF файла от друг модел, където изгледът не съществува. Знаете ли дали има начин да го извикаме ръчно, за да можем да генерираме PDF и да го запазим във файл, без да използваме изглед/контролер? - person fistameeny; 19.08.2013
comment
Да, можете да използвате диспечера на услугите, за да получите програмата за изобразяване на изгледи и след това ръчно да изобразите изгледа, подобно на отговора, даден на този SO отговор. Вместо да получите viewrenderer от мениджъра на услугите, ще искате ViewPdfRenderer. - person James Newell; 02.09.2013