setasign/setapdf-image-extractor

使用 SetaPDF 从 PDF 文件中提取图像的演示

dev-main 2022-07-26 15:18 UTC

This package is auto-updated.

Last update: 2024-08-27 13:48:51 UTC


README

此包是一个概念验证,使用 SetaPDF-Core 组件和图像渲染模块在纯 PHP 中从 PDF 中提取图像。目前,不支持所有类型的图像。这也非常依赖于您使用的图像渲染库。目前实现了 GD 和 Imagick。我们建议您使用 Imagick,因为它比 GD 功能更完整,但可能更难安装。

要求

此包在 PHP >= 7.4 上开发和测试。

您需要一个有效的 SetaPDF-Core 组件许可证。

SetaPDF-Core 组件的要求可以在 这里 找到。

用法

此示例提取 pdf 第一页上的所有图像

$document = SetaPDF_Core_Document::loadByFilename('your-pdf-file.pdf');
$images = \setasign\SetaPDF\ImageExtractor\ImageExtractor::getImagesByPageNo($document, 1);
foreach ($images as $imageData) {
    // if you're using imagick
    $imagick = \setasign\SetaPDF\ImageExtractor\ImageExtractor::toImage($imageData, ImageExtractor::IMAGE_RENDERER_IMAGICK);
    $imagick->setImageFormat('png');
    $image = $imagick->getImageBlob();
    $imagick->destroy();
    echo '<img src="data:image/png;base64,' . base64_encode($image) . '"/>';

    // if you're using gd use this code instead
    $gd = ImageExtractor::toImage($imageData, ImageExtractor::IMAGE_RENDERER_GD);
    ob_start();
    imagepng($gd);
    $image = ob_get_clean();
    imagedestroy($gd);
    echo '<img src="data:image/png;base64,' . base64_encode($image) . '"/>';
}

许可证

此包是开源软件,许可协议为 MIT 许可证