我有一个Web应用程序,需要动态生成pdf。数据以javascript收集,并随发布请求一起发送到服务器。在这里,mpdf用于生成pdf。如果我将文件保存在本地:php $mpdf->Output($filename, \Mpdf\Output\Destination::FILE);
,它可以工作。
但是如果我将其发送到浏览器php $mpdf->Output($filename, \Mpdf\Output\Destination::DOWNLOAD);
并在jquery回调中获取输出以执行以下操作(从https://nehalist.io/downloading-files-from-post-requests/借用:]
jQuery.post(my_axax_url, data, function(data) {
var blob = new Blob([data], { type: 'application/pdf' });
var l = document.createElement('a');
l.href = window.URL.createObjectURL(blob);
l.download = 'test.pdf';
document.body.appendChild(l);
l.click();
});
下载的pdf为空(空白页),并且作者信息已损坏(看起来像编码问题)。我运行了https://www.datalogics.com/products/pdftools/pdf-checker/,它只给了我javascript生成的pdf是“损坏的文档”。
我希望这是一个简单的问题。我习惯于使用php和文本文档,而不是pdf。
谢谢!
尝试将以下内容添加到您的php脚本的开头,这可能是某种编码问题:
ob_clean();
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="test.pdf"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');