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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用CakePdf创建和下载PDF,而不是在浏览器中显示它相关的知识,希望对你有一定的参考价值。

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

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

有帮助吗?

答案

我使用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非常容易。

以上是关于如何使用CakePdf创建和下载PDF,而不是在浏览器中显示它的主要内容,如果未能解决你的问题,请参考以下文章

能把网页中打开的pdf文件直接保存下来而不使用下载吗?

使用 PDFKit Swift (ios)/Capacitor 加载 PDF 而不下载文件

如何在 laravel 刀片中显示来自 public/file/filen_name 的 pdf 文件而不下载文件 [重复]

使用特定配置打开 Puppeteer(下载 PDF 而不是 PDF 查看器)

如何在 Android 11 Xamarin Forms 中下载和打开 PDF

.htaccess 在 Safari 中强制 PDF 下载