我如何能给字符串(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)我的字符串模板

看起来你需要实现你自己的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方法