PHP

PHP PDF转图片

之前做过一个项目,需要把pdf转成图片,一页一张图片,存到一个数组里面。当时想了很多办法都没有实现,只能委曲求全使用第三方的服务(云展网)。

之前也不是没有用过composer,但是今天偶然发现composer有把pdf转成图片的类库。以前居然没有想到(我要退出歌坛了~)。

引入类库

composer require spatie/pdf-to-image

转换成图片

$pdf = new Spatie\PdfToImage\Pdf($pathToPdf);
$pdf->saveImage($pathToWhereImageShouldBeStored);

获取页数

$pdf->getNumberOfPages();

根据页数保存图片

$pdf->setPage(2)
    ->saveImage($pathToWhereImageShouldBeStored);

可以定义输出格式

$pdf->setOutputFormat('png')
    ->saveImage($pathToWhereImageShouldBeStored);

可以压缩图片质量(100是最高)

$pdf->setCompressionQuality(100);

结合我的需要应该这样就可以实现了

$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;

类似文章