我有我的模板只是在字符串"<html>..</html>"
由请求响应的;
现在我想使用DOMpdf生成一个pdf
$pdf = new PdfModel();
$pdf->setOption('filename', 'monthly-report'); // Triggers PDF download, automatically appends ".pdf"
$pdf->setOption('paperSize', 'a4'); // Defaults to "8x11"
$pdf->setOption('paperOrientation', 'landscape'); // Defaults to "portrait"
// To set view variables
$pdf->setVariables(array(
'message' => 'Hello'
));
$pdf->setTemplate("path/to/something.html");
return $pdf;
而不是$pdf->setTemplate("path/to/something.html")
我如何给$pdf(ViewModel)我的字符串模板
看起来你需要实现你自己的StringRenderer实现Zend/View/Renderer/RendererInterface,也扩展DOMPDFModule/Mvc/Service/ViewPdfRendererFactory来使用你的渲染器
这是因为,PdfRenderer硬编码使用默认的ViewManager Renderer,并且在Zend中没有StringRenderer。
您可以返回一个响应,而不是返回一个视图模型:
$string = "<h1>hello</h1>";
$response = $this->getResponse();
$response->setContent($string)->setStatusCode(200);
$response->getHeaders()->addHeaderLine('Content-Type', 'text/html');
return $response;
您可以使用不同的模板引擎,如mustache或twig,编译php然后从DOMpdf传递到loadHtml方法