Я использую PDF Snappy для создания PDF-файлов из представлений в Laravel 4.
Я могу использовать этот код с помощью download () без каких-либо проблем, и файл сгенерирован, и я могу сохранить его:
$pdf = PDFSnappy::loadView($pdfView, $dataForPDF);
return $pdf->download( 'invoice.pdf' );
Однако, когда я пытаюсь использовать save () с этим кодом:
$pathToFile = "invoices/2015/full/invoice.pdf";
$pdf = PDFSnappy::loadView($pdfView, $dataForPDF);
return $pdf->save( $pathToFile );
Я получаю это сообщение об ошибке:
Object of class Barryvdh\\Snappy\\PdfWrapper could not be converted to string
Если я попробую что-то вроде этого:
$pathToFile = url() . '/' . "invoices/2015/full/invoice.pdf";
$pdf = PDFSnappy::loadView($pdfView, $dataForPDF);
return $pdf->save( $pathToFile );
Я получаю это сообщение об ошибке:
The output file's directory http://laravel.dev/invoices/2015/full/ could not be created.
Я использую WAMP на Windows, это может быть проблемой?
Как я могу сохранить файл в моем /public
папка в Laravel внутри invoices/2015/full/
?
ОК, так что кажется, что решение состоит в том, чтобы удалить return
из этого:
return $pdf->save( $pathToFile );
и используйте этот код вместо этого:
$pdf->save( $pathToFile );
И никакой дополнительной настройки URL не требуется, вы можете использовать относительные «публичные» пути, где вы хотите сохранить ваши PDF-файлы.
Надеюсь, это поможет кому-нибудь в будущем;)
Других решений пока нет …