jobbrown / pdf-to-image
将PDF转换为图片
Requires
- php: ^7.2|^8.0
- ext-imagick: *
Requires (Dev)
- phpunit/phpunit: ^8.0|^9.0
README
本包提供了一个易于使用的类,用于将PDF转换为图片。
Spatie是比利时安特卫普的一家网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 在这里。
支持我们
我们投入了大量资源来创建 一流的开放源代码包。您可以通过 购买我们的付费产品之一 来支持我们。
我们非常感激您从家乡寄给我们明信片,注明您正在使用我们哪些包。您可以在我们的 联系页面 上找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙上。
要求
您应该已经安装了 Imagick 和 Ghostscript。有关Ghostscript的问题,请参阅 这里。
安装
可以通过composer安装此包
composer require spatie/pdf-to-image
使用方法
将PDF转换为图片非常简单。
$pdf = new Spatie\PdfToImage\Pdf($pathToPdf); $pdf->saveImage($pathToWhereImageShouldBeStored);
如果传递给 saveImage
的路径具有 jpg
、jpeg
或 png
扩展名,则图片将以该格式保存。否则输出将为jpg。
其他方法
您可以获取PDF中的总页数
$pdf->getNumberOfPages(); //returns an int
默认情况下,将渲染PDF的第一页。如果您想渲染另一页,可以这样做
$pdf->setPage(2) ->saveImage($pathToWhereImageShouldBeStored); //saves the second page
您可以覆盖输出格式
$pdf->setOutputFormat('png') ->saveImage($pathToWhereImageShouldBeStored); //the output wil be a png, no matter what
您可以设置压缩质量,范围为0到100
$pdf->setCompressionQuality(100); // sets the compression quality to maximum
有关Ghostscript的问题
此包通过Imagick使用Ghostscript。为了使其工作,Ghostscript的 gs
命令应该可以从PHP进程访问。对于PHP CLI进程(例如Laravel的异步任务、命令等),这通常是已经完成的。
然而,对于PHP on FPM(例如在浏览器中运行此包时),您可能会遇到以下问题
Uncaught ImagickException: FailedToExecuteCommand 'gs'
您可以在 php-fpm.conf
文件的末尾添加以下行并重新启动PHP FPM来修复此问题。如果您不确定 php-fpm.conf
文件在哪里,可以检查 phpinfo()
。如果您使用Laravel Valet,则 php-fpm.conf
文件将位于 /usr/local/etc/php/YOUR-PHP-VERSION
目录中。
env[PATH] = /usr/local/bin:/usr/bin:/bin
这将指示PHP FPM在正确的位置查找 gs
二进制文件。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现任何安全问题,请通过电子邮件 freek@spatie.be 而不是使用问题跟踪器。
明信片软件
您可以使用此包,但如果它进入您的生产环境,我们非常感谢您从家乡寄给我们明信片,注明您正在使用我们哪些包。
我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。
我们将所有收到的明信片发布在我们的 公司网站上。
鸣谢
许可证
MIT 许可证(MIT)。请参阅许可证文件获取更多信息。