如何使用CakePdf创建和下载PDF,而不是在浏览器中显示它

问题描述 投票:2回答:1

我下载并安装了CakePdf,效果很好。但是在文档中只显示了两种方法: - 渲染到屏幕,可选下载。 - 创建文件并将其存储在服务器中

我实际上想用用户的数据生成pdf并下载它而不将其保存在服务器中,但我不希望浏览器加载它并在屏幕上显示它。在浏览器中显示pdf时的即时下载很不错,但是使用它的用户不熟悉浏览器并且会卡在pdf页面中,忽略了如何返回菜单。

有帮助吗?

pdf cakephp
1个回答
2
投票

我使用TCPDF作为我的PDF生成器,但我认为CakePdf的方法是相同的。这里的关键是将PDF生成为字符串变量。一旦你有了它,很容易两种方式发送它。

这将在浏览器中打开PDF以供查看:

 public function index() {
      $pdf = $this->PdfToString(); // should return PDF as a string
      return $this->response
             ->withType('application/pdf')
             ->withStringBody($pdf);
 }

这将使浏览器提示用户保存PDF:

 public function index() {
      $pdf = $this-PdfToString();
      return $this->response
             ->withType('application/pdf')
             ->withStringBody($pdf)
             ->withDownload('document_name.pdf');
 }

正如您所看到的,使用CakePHP 3非常容易。

© www.soinside.com 2019 - 2024. All rights reserved.