pdf(mpdf)文件在javascript中损坏

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

我有一个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。

谢谢!

javascript php pdf blob mpdf
1个回答
0
投票

尝试将以下内容添加到您的php脚本的开头,这可能是某种编码问题:

ob_clean();
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="test.pdf"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
© www.soinside.com 2019 - 2024. All rights reserved.