【问题标题】:Render a View without loading in the browser - cakephp在不加载浏览器的情况下渲染视图 - cakephp
【发布时间】:2012-10-01 15:03:08
【问题描述】:

我想知道是否可以在不加载浏览器的情况下呈现动作视图?

我正在使用一个使用 mPDF 生成 PDF 文件的 cakephp 组件。如果您在浏览器中加载操作和视图,该组件运行良好,但是当我想生成 pdf 并将其保存到驱动器时​​,它似乎没有启动,我假设这是因为视图未加载属性。

我使用的组件是:https://github.com/segy/Mpdf

所以基本上我有一个名为 mail_merge 的函数,它使用上述组件生成 pdf,我需要从同一控制器中的另一个函数调用 mail_merge 函数来生成 pdf,但无需在浏览器中加载。

谢谢

更新:

我想出了如何将视图设置为变量,然后将其写入函数中的pdf。

添加了这个:

// RENDER THE VIEW AND SET AS A VARIABLE TO WRITE THE HTML
// --------------------------------------------------------------------------->
$response = $this->render('mail_merge');
$thebody = $response->body();
$this->Mpdf->WriteHTML($thebody);

不幸的是,我的 PDF 仍然无法生成,所以我猜问题出在其他问题上。

【问题讨论】:

  • 你能通过 ajax 打它吗?

标签: php cakephp pdf-generation


【解决方案1】:

试试这个方法:

$response = $this->render('mail_merge');
$thebody = $response->body();
$this->Mpdf->WriteHTML($thebody);
$this->Mpdf->Output('filename.pdf');

【讨论】:

  • 感谢回复,其实我已经有了。我认为问题与出于某种原因在另一个函数中调用的组件有关。 6 多个小时,但我仍然没有想出解决方案。
  • 在另一个函数中调用的组件是什么意思?您是否尝试从组件进行渲染?
  • 对不起,我弄错了,我的原始代码有点不同,我使用的是 $this->Mpdf->setOutput('filename.pdf');从不起作用的组件开始,现在一切正常。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2021-01-31
  • 1970-01-01
  • 2015-12-03
  • 2017-10-13
  • 2015-08-04
  • 1970-01-01
相关资源
最近更新 更多