setasign / setapdf-image-extractor
使用 SetaPDF 从 PDF 文件中提取图像的演示
dev-main
2022-07-26 15:18 UTC
Requires
- php: >=7.4
- setasign/setapdf-core: ^2.40
Suggests
- ext-gd
- ext-imagick
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 许可证。