steffen-99 / pdf-to-image
将 PDF 转换为图片
Requires
- php: ^7.4|^8.0
- ext-imagick: *
Requires (Dev)
- phpunit/phpunit: ^6.2
README
此包提供了一个易于使用的类,用于将 PDF 转换为图片。
Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 这里。
要求
您应该已安装 Imagick 和 Ghostscript。有关 Ghostscript 的问题,请参阅 这里。
安装
此包可以通过 composer 安装
$ composer require steffen-99/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 的异步作业、命令等),这通常已经如此。
然而,对于 FPM 上的 PHP(例如在浏览器中运行此包时),您可能会遇到以下问题
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 而不是使用问题跟踪器。
Postcardware
您可以使用此包,但如果它进入您的生产环境,我们非常感谢您从您的家乡给我们寄一张明信片,提及您正在使用我们哪些包。
我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。
我们将发布所有收到的明信片 在我们的公司网站上。
致谢
支持我们
Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 这里。
您的业务是否依赖于我们的贡献?请与我们联系并在 Patreon 上支持我们。所有承诺都将致力于分配人力以维护和新奇事物。
许可
MIT 许可协议(MIT)。更多信息请参阅许可文件。