laraveldompdf获取base64格式



我在项目中使用laravel dompdf(Barryvdh\dompdf(,需要获得base64格式的文件(vor a vue组件(

在laravel控制器中:

$data = array(
'values' => $documentValues
);
$pdf = PDF::loadView('documentTemplate', $data);

我可以使用下载文件

$pdf->download('test.pdf');

但我需要服务器的响应,源文件是base64格式的,如下所示:

source: 'data:application/pdf;base64,<BASE64_ENCODED_PDF>'

我试过这样的东西:

base64_encode($pdf->stream())

但不起作用。

有什么想法吗?

更新

我修复了:

return 'data:application/pdf;base64,'.base64_encode($pdf->stream());

服务器端:

echo base64_encode($dompdf->output());

客户端:

htmlstr['html'] = "<p>abcd</p>";
await axios.post(endpoint, transformToFormData(htmlstr), config, { responseType: 'blob' })
.then(response => {
if(response.status===200 && response.data != null ){
console.log("response-data", response);
const data = response.data;
downloadPDF(data,fileName);


}
})
function downloadPDF(pdf,fileName) {
const linkSource = `data:application/pdf;base64,${pdf}`;
const downloadLink = document.createElement("a");
downloadLink.href = linkSource;
downloadLink.download = fileName;
downloadLink.click();
}

最新更新