break-down/pdf-to-image

将PDF转换为图片

0.0.5 2018-08-08 13:34 UTC

This package is not auto-updated.

Last update: 2024-09-23 16:26:46 UTC


README

A wrapper around Imagick to ease out conversion of PDF file to a JPEG/JPG image.

要求

您应该已经安装了ImagickGhostscript。有关Ghostscript的问题,请参见相关问题

安装

该包可以通过composer安装

$ composer require break-down/pdf-to-image

用法

将PDF转换为图片非常简单。

$pdf = new BreakDown\PdfToImage\PdfToImage(new BreakDown\PdfToImage\Resources\FilePath($pathToPdfFile));
$pdf->savePageAsImage($pageNumber, $pathToWhereImageShouldBeStored);

如果传递给saveImage的路径具有扩展名jpgjpegpng,则图片将以该格式保存。否则,输出将是jpg。

其他方法

您可以获取PDF中的总页数

$pdf->getNumberOfPages(); //returns an int

您可以覆盖输出格式

$pdf->setOutputFormat('png')
    ->savePageAsImage($pageNumber, $pathToWhereImageShouldBeStored); //the output wil be a png, no matter what

您可以设置压缩质量,从0到100

$pdf->setCompressionQuality(100); // sets the compression quality to maximum

关于Ghostscript的问题

此包通过Imagick使用Ghostscript。为此,Ghostscripts的gs命令应可以从PHP进程中访问。对于PHP CLI进程(例如Laravel的异步作业、命令等),这通常已经是这种情况。

然而,对于PHP在FPM上(例如在浏览器中运行此包时)您可能会遇到以下问题

Uncaught ImagickException: FailedToExecuteCommand 'gs'

这可以通过在php-fpm.conf文件末尾添加以下行并重新启动PHP FPM来修复。如果您不确定php-fpm.conf文件的位置,您可以检查phpinfo()

env[PATH] = /usr/local/bin:/usr/bin:/bin

这将指示PHP FPM在正确的位置查找gs二进制文件。

致谢

许可协议

MIT许可协议(MIT)。请参阅许可文件以获取更多信息。