bnbwebexpertise/pdf-to-image

使用 Imagick 扩展将 PDF 转换为图片。由 spatie/pdf-to-image 分支而来

1.2.6 2019-06-13 07:13 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:38 UTC


README

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

要求

您应已安装 ImagickGhostscript

安装

此包可以通过 composer 安装。

$ composer require bnbwebexpertise/pdf-to-image

用法

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

$pdf = new Bnb\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

您可以配置自定义设置(其中页面是页码)

$beforeImageReadSettings = function (\Imagick $imagick, $page) {
    $imagick->setColorspace(\Imagick::COLORSPACE_SRGB);

    return $imagick;
};

$beforeImageWriteSettings = function (\Imagick $imagick, $page) {
    $imagick->resizeImage(1024, 1024, \Imagick::FILTER_LANCZOS, 0, true);
    $imagick->setImageColorspace(\Imagick::COLORSPACE_GRAY);

    return $imagick;
};

$pdf = new Pdf($this->testFile, $beforeImageReadSettings, $beforeImageWriteSettings)
    ->saveImage($pathToWhereImageShouldBeStored); //the output will be resized to a grayscale image with a best-fit dimension of 1024x1024

变更日志

请参阅 CHANGELOG 以获取更多信息。

测试

$ composer test

贡献

请参阅 CONTRIBUTING 以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件 support@bnb.be 报告,而不是使用问题跟踪器。

致谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 以获取更多信息。