hyder / converter
一个 Laravel 扩展包,提供使用 Imagick PHP 扩展将 PDF 文件转换为图片的简单界面。
Requires
- php: ^7.3|^8.0
README
一个 Laravel 扩展包,允许您将 PDF 文件转换为图片。该包使用 Imagick PHP 扩展和 GhostScript 将 PDF 文件转换为图片。
要求
-
PHP "^7.3|^8.0"
-
Imagick PHP 扩展
在您的 php.ini 文件中取消注释或添加以下行以启用 Imagick 扩展:
extension=imagick
- Ghostscript
通过运行以下命令验证 Ghostscript 是否已安装:
gs -v
这将显示 Ghostscript 的版本号。
安装
您可以通过 composer 安装此包
composer require hyder/converter
配置
您可以通过发布配置文件来自定义包设置。要发布配置文件,请运行以下命令:
php artisan vendor:publish --provider="Hyder\Converter\ConverterServiceProvider" --tag="config"
这将创建一个 config/converter.php 文件,您可以在其中配置包设置。
可选
服务提供器将自动注册。或者,您也可以手动在您的 config/app.php 文件中添加服务提供器
'providers' => [ // ... Hyder\Converter\ConverterServiceProvider::class, ];
用法
以下是将 PDF 文件转换为图片的示例
use Hyder\Converter\Facades\PdfToImage; // Minimalistic $response = PdfToImage::path('/path/to/file.pdf') ->save(); // Customize output $response = PdfToImage::path('/path/to/file.pdf') ->format('png') ->resolution(200) ->maxLimit(5) ->setPage('1-3,5') ->toDir('/path/to/directory') ->save('output-image-name');
可用方法
以下是包的可用方法
path(string $path)
此方法设置要转换为图片的 PDF 文件的路径。
format(string $format)
此方法设置图片的输出格式。支持的格式为 JPEG、JPG 和 PNG。
resolution(int $dpi)
此方法设置输出图片的分辨率(每英寸点数 dpi)。分辨率越高,图片质量越好,但文件大小也越大。
maxLimit(int $max)
此方法设置要转换的页面数的最大限制。如果 PDF 文件有超过此限制的页面,则只转换前 $max 页。
setPage($pages)
此方法设置要转换的 PDF 文件页码。页码可以指定为单个页码(例如 1,2,3),页码范围(例如 1-3),或两者的组合(例如 1,2,3-5)。默认情况下,只转换第一页。
allPage()
此方法用于设置 PDF 文件的所有页码以转换为图片。当使用 allPage() 时,maxLimit() 或 setPage() 无效。如果在调用 allPage() 之前调用这些方法,它们将被忽略。
toDir(string $storageTo)
此方法设置转换后的图片将保存到的目录。如果没有指定目录,则使用默认目录。
save(string $name = "")
此方法将 PDF 文件转换为图片并保存到指定的目录。如果没有指定名称,则图片将使用随机名称保存。
错误处理
启用 imagick 后,您可能在实时服务器中遇到错误。ImageMagick 由于安全原因禁用了一些权限。您需要编辑配置文件来重新启用所需的操作。
使用您喜欢的文本编辑器打开 /etc/ImageMagick-6/policy.xml,找到以下行并将其替换为 "read|write":
打开文件
sudo nano /etc/ImageMagick-6/policy.xml
找到并编辑以下行
<policy domain="coder" rights="none" pattern="PDF" />
到
<policy domain="coder" rights="read|write" pattern="PDF" />
您可以在这里找到更好的理解。
鸣谢
Imagick
贡献
如果您想为此包做出贡献,请创建一个 pull request 或打开一个 issue。
许可
PDF to Image Converter 包是开源软件,许可协议为 MIT。