2013-04-05 40 views
1

我使用ZF2和DOMPDFModule \ View \ Model \ PdfModel生成pdf。當它顯示爲視圖一切正常時,但我無法找到如何將其保存到文件中(在代碼中,無需詢問用戶下載)。 我有這樣的代碼:如何將PdfModel保存到Zend Framework 2中?

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); 

感謝你的幫助。

回答

0

project's github README page的示例顯示$viewModel從控制器操作返回。另外,您已經指定的filename選項應該強制文件被下載,而不是在瀏覽器中顯示。

作者實現了一個視圖策略/渲染器,它可以創建實際的dompdf對象並自動爲您呈現視圖模型,類似於現有的zf2行爲,因此您不必短路MVC生命週期。

+0

我處於與原始海報類似的情況。我需要從視圖不存在的另一個模型中渲染PDF。你知道是否有辦法手動調用它,以便我們可以生成PDF並將其保存到文件中,而無需使用視圖/控制器? – fistameeny 2013-08-19 16:34:32

+0

是的,你可以使用服務管理器來獲取視圖渲染器,然後手動渲染視圖類似於這個[給出的答案] [答案](http://stackoverflow.com/questions/12451399/how-to-render- ZF2 - 視圖 - 內-JSON響應)。而不是從服務管理器獲得'viewrenderer',你會想要'ViewPdfRenderer'。 – 2013-09-02 09:05:25