6

我正在使用 Yii 框架、TCPDF 和 jQuery 生成 pdf。

pdf 是通过输入表单并使用 ajax 提交来生成的。

pdf已创建,但当它返回客户端时出现问题,它无法下载。

这是php代码 $pdf->Output('Folder Label.pdf','D');

jQuery on success 函数有 success: function(data) { window.open(data); }

我从这个网站得到的。

你能帮忙吗

4

4 回答 4

3

如果问题是您没有获得浏览器的 PDF 下载对话框,那么解决方案就是这样做:

首先,重定向浏览器(使用window.location其他答案)以导航到应用程序中的特殊控制器操作,例如使用此 url: http://your.application.com/download/pdf/filename.pdf

像这样实现 URL 中引用的操作:

public function actionPdf() {
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="filename.pdf";');
    header('Content-Length: '.filesize('path/to/pdf'));
    readfile('path/to/pdf');
    Yii::app()->end();
}

这将导致浏览器下载文件。

于 2011-04-01T00:46:52.550 回答
1

您需要将 PDF 保存到服务器上的某个位置,然后window.location = '/url/to/pdf-you-just-saved.pdf';从您的 javascript 发出。然后,用户浏览器将提示他们下载 PDF 文件。

于 2011-03-31T13:20:03.317 回答
1

在 tcpdf 中,只需将此参数传递给输出方法:

$pdf->Output('yourfilename.pdf', 'D'); 

就这样

于 2016-01-06T10:56:30.313 回答
0

不完全是,这会在某些浏览器上导致错误,是设置窗口位置的正确方法。

window.location.assign( downloadUrlToPdf );

所以

  1. 通过 Ajax 向服务器发送制作 pdf 的请求
  2. 在服务器上处理并生成pdf
  3. 在 Ajax 调用中返回刚刚创建的文件的 url
  4. 使用上面的代码片段打开所述文件的下载
于 2011-03-31T13:25:41.927 回答