我正在使用 Yii 框架、TCPDF 和 jQuery 生成 pdf。
pdf 是通过输入表单并使用 ajax 提交来生成的。
pdf已创建,但当它返回客户端时出现问题,它无法下载。
这是php代码
$pdf->Output('Folder Label.pdf','D');
jQuery on success 函数有
success: function(data) {
window.open(data);
}
我从这个网站得到的。
你能帮忙吗
如果问题是您没有获得浏览器的 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();
}
这将导致浏览器下载文件。
您需要将 PDF 保存到服务器上的某个位置,然后window.location = '/url/to/pdf-you-just-saved.pdf';
从您的 javascript 发出。然后,用户浏览器将提示他们下载 PDF 文件。
在 tcpdf 中,只需将此参数传递给输出方法:
$pdf->Output('yourfilename.pdf', 'D');
就这样
不完全是,这会在某些浏览器上导致错误,这是设置窗口位置的正确方法。
window.location.assign( downloadUrlToPdf );
所以