从vuejs下载在laravel中生成的pdf可以通过以下步骤实现:
methods: {
downloadPDF() {
axios({
url: '/api/generate-pdf', // 后端生成PDF的接口地址
method: 'GET',
responseType: 'blob' // 响应类型设置为blob,以便处理二进制数据
})
.then(response => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'generated-pdf.pdf');
document.body.appendChild(link);
link.click();
})
.catch(error => {
console.error(error);
});
}
}
Route::get('/api/generate-pdf', 'PDFController@generatePDF');
use Barryvdh\DomPDF\Facade as PDF;
class PDFController extends Controller
{
public function generatePDF()
{
$data = []; // 传递给PDF视图的数据
$pdf = PDF::loadView('pdf.template', $data);
return $pdf->download('generated-pdf.pdf');
}
}
在上述示例中,我们使用了一个名为pdf.template
的视图来生成PDF。你可以根据自己的需求创建和使用相应的视图。
这样,当你在Vue组件中调用downloadPDF
方法时,它将发送一个GET请求到/api/generate-pdf
路由,后端将生成PDF并将其作为响应返回。前端通过创建一个临时链接来触发下载操作,用户可以通过点击该链接来下载生成的PDF文件。
请注意,以上示例仅供参考,具体实现方式可能因你使用的库和框架而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云