steffen-99/pdf-to-image

将 PDF 转换为图片

2.1 2021-11-01 14:32 UTC

README

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

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

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

要求

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

安装

此包可以通过 composer 安装

$ composer require steffen-99/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 的异步作业、命令等),这通常已经如此。

然而,对于 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)。更多信息请参阅许可文件