我遇到的问题可能是实现,但在正确下载的PDF和不返回响应数据的PDF之间找不到任何一致性。
我使用的是Laravel v5.4.36和v0.4.0的Snappy。
我在前端用角5。任何对PDF的请求都在设置responseType:3 (Blob)。问题不是如何从角度上解释数据,而是在生成一些PDF时不返回数据。
下面是我在使用$pdf->download或$pdf->stream时尝试返回的东西
<h1>Hello World</h1>,并得到与输出多页HTML相同的结果(没有)。save()的PDF,它是正确的生成,我可以查看它没有问题。PDF::loadView('pdfs.reminder', compact('transactions', 'globalData'))和\View::make('pdfs.reminder', compact('transactions', 'globalData'))来生成HTML。那没有任何效果。下面是我目前使用的代码:
private function generatePDF($transactions, $globalData)
{
$html = \View::make('pdfs.reminder', compact('transactions', 'globalData'))->render();
$pdf = \PDF::loadHTML($html);
return $pdf->download('reminder.pdf');
}值得注意的是,我尝试过生成的一些PDF已经成功了。但到目前为止,这是1/3的成功率。我使用相同的请求格式和相同的方法对所有三个。没有错误被抛出。
我怀疑可能是生成PDF的大小导致下载失败。但是,我并不认为这是一个仅包含<h1>Hello World</h1>的PDF文件中的问题。在文件大小方面是否有任何可能导致这种行为的限制?
对此的任何帮助都将不胜感激。
更新
问题不在于快速,而是名为generatePDF的方法没有返回generatePDF的结果。因此,为什么什么都不返回。因为我不想问这一点代码,所以其他人几乎不可能提供帮助。不过,多亏了所有尝试过的人。
发布于 2018-02-09 12:41:16
E.g
$date = Carbon::now()->format('j F, Y');
$application = Application::find($id);
$data = ['date'=>$date,'application'=>$application]; // data to be passes to view file
$pdf = PDF::loadView('pdfs.reminder', $data)->setPaper('a4');
return $pdf->download('reminder.pdf');注意:在开始上课之前,一定要使用PDF (use PDF;)。
发布于 2018-02-09 13:48:57
第一行有<!DOCTYPE html>吗?
private function generatePDF($transactions, $globalData){
$html = \View::make('pdfs.reminder')->render();
$pdf = \PDF::loadHTML($html);
return $pdf->stream();
}pdfs.reminder.blade.php
<!DOCTYPE html>
<h1>Hello World</h1>https://stackoverflow.com/questions/48705984
复制相似问题