我如何将字符串(html)提供给 ViewModel 而不是 zf2 上 html 文件的路径
How i can give string(html) to ViewModel instead path of html file on zf2
我的模板就在字符串中 "<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)。
您可以 return 响应而不是 return 在视图模型中:
$string = "<h1>hello</h1>";
$response = $this->getResponse();
$response->setContent($string)->setStatusCode(200);
$response->getHeaders()->addHeaderLine('Content-Type', 'text/html');
return $response;
看来您需要实现自己的 StringRenderer 以实现 Zend/View/Renderer/RendererInterface 并扩展 DOMPDFModule/Mvc/Service/ViewPdfRendererFactory 以使用您的渲染器。
这是因为,PdfRenderer 被硬编码为使用默认的 ViewManager 渲染器,而 Zend 中没有 StringRenderer。
您可以使用不同的模板引擎,例如 mustache 或 twig,编译 php 然后从 DOMpdf 传递给 loadHtml 方法。
我的模板就在字符串中 "<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)。
您可以 return 响应而不是 return 在视图模型中:
$string = "<h1>hello</h1>";
$response = $this->getResponse();
$response->setContent($string)->setStatusCode(200);
$response->getHeaders()->addHeaderLine('Content-Type', 'text/html');
return $response;
看来您需要实现自己的 StringRenderer 以实现 Zend/View/Renderer/RendererInterface 并扩展 DOMPDFModule/Mvc/Service/ViewPdfRendererFactory 以使用您的渲染器。
这是因为,PdfRenderer 被硬编码为使用默认的 ViewManager 渲染器,而 Zend 中没有 StringRenderer。
您可以使用不同的模板引擎,例如 mustache 或 twig,编译 php 然后从 DOMpdf 传递给 loadHtml 方法。