之前做过一个项目,需要把pdf转成图片,一页一张图片,存到一个数组里面。当时想了很多办法都没有实现,只能委曲求全使用第三方的服务(云展网)。
之前也不是没有用过composer,但是今天偶然发现composer有把pdf转成图片的类库。以前居然没有想到(我要退出歌坛了~)。
引入类库
♾️ text 代码:composer require spatie/pdf-to-image转换成图片
♾️ text 代码:$pdf = new Spatie\PdfToImage\Pdf($pathToPdf);
$pdf->saveImage($pathToWhereImageShouldBeStored);获取页数
♾️ text 代码:$pdf->getNumberOfPages();根据页数保存图片
♾️ text 代码:$pdf->setPage(2)
->saveImage($pathToWhereImageShouldBeStored);可以定义输出格式
♾️ text 代码:$pdf->setOutputFormat('png')
->saveImage($pathToWhereImageShouldBeStored);可以压缩图片质量(100是最高)
♾️ text 代码:$pdf->setCompressionQuality(100);结合我的需要应该这样就可以实现了
♾️ text 代码:$image = [];
$pdf = new Spatie\PdfToImage\Pdf($pathToPdf);
$num = $pdf->getNumberOfPages();
for ($i=1; $i<=$num; $i++) {
$image = $pdf->setPage(i)->setOutputFormat('png')->setCompressionQuality(100)
->saveImage('保存的图片路径命名');
}
return $image;