jobbrown/pdf-to-image

将PDF转换为图片

资助包维护!
spatie

2.1.0 2020-11-12 11:27 UTC

README

Latest Version on Packagist Software License GitHub Workflow Status Quality Score StyleCI Total Downloads

本包提供了一个易于使用的类,用于将PDF转换为图片。

Spatie是比利时安特卫普的一家网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 在这里

支持我们

我们投入了大量资源来创建 一流的开放源代码包。您可以通过 购买我们的付费产品之一 来支持我们。

我们非常感激您从家乡寄给我们明信片,注明您正在使用我们哪些包。您可以在我们的 联系页面 上找到我们的地址。我们将所有收到的明信片发布在我们的 虚拟明信片墙上

要求

您应该已经安装了 ImagickGhostscript。有关Ghostscript的问题,请参阅 这里

安装

可以通过composer安装此包

composer require spatie/pdf-to-image

使用方法

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

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

如果传递给 saveImage 的路径具有 jpgjpegpng 扩展名,则图片将以该格式保存。否则输出将为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)。请参阅许可证文件获取更多信息。