Knp \ Snappy \ Pdf generateFromHTML没有生成具有正确文件名的PDF

时间:2017-03-31 16:24:32

标签: php pdf wkhtmltopdf

我的Laravel应用程序中有PDF下载功能。

当PDF文件名为英文时,它可以正常工作,问题在于其他语言。

$pdf = new Pdf();
...
$pdf->generateFromHtml(View::make('invoices.download'.$preferences->invoice_template, $data), $pdf_file_loc);
return Response::download($pdf_file_loc);

在上面的代码中,$pdf_file_loc包含PDF文件的完整路径以及PDF文件名。例如,目前,当文件名是“Förderverein_für.pdf”(它是德语)时,创建的PDF文件的真实名称是“Frderverein_fr.pdf”。

换句话说,generateFromHtml函数没有创建具有正确德语文件名的PDF文件。

但在此之后,由于$pdf_file_loc包含正确的德语名称,它正在尝试下载不存在的“Förderverein_für.pdf”文件(在return Response::download($pdf_file_loc)中)。

因此,当我尝试下载PDF文件时,它显示错误页面

这导致我的实时应用程序出现严重问题,因为PDF文件名包含我们客户的公司名称,并且通常由外语(非英语)编写。

1 个答案:

答案 0 :(得分:1)

由于generateFromHtml函数未使用其他语言(非英语)创建文件,因此我没有在文件名中包含其他语言,但在下载文件时尝试使用其他语言重置文件名。

所以,现在$pdf_file_loc不包含其他语言,它只在应用程序商店中以英语存储,但在下载时将其转换为其他语言。

return Response::download($pdf_file_loc, $filename);

我不认为这是最好的答案,但只要目的是用其他语言获取PDF文件名,这就解决了我的问题。