2025年12月

组件安装前提

  1. php8.0+
  2. 安装imagick扩展,
  3. 依赖bcmath 扩展

安装组件

    composer require wudg/pdf-images

组件使用

组件主要依赖 imagick 扩展来处理图片和 pdf 相关,若使用 hyperf 框架,pdf 转换图片速度会大大提升,默认使用 5 个携程来同时处理转换图片。


hyperf 框架使用

# 发布配置
php bin/hyperf.php vendor:publish wudg/pdf-images

# 注解模式调用
<?php
/**
 * Notes:
 * User: wudg <544038230@qq.com>
 * Date: 2025/12/03 16:57
 */

namespace App\Controller;
use Wudg\PdfImages\Engine\PdfImagesEngine;
use Hyperf\Di\Annotation\Inject;

class TestController extends AbstractController 
{
    #[Inject]
    private PdfImagesEngine $pdfImage;

    public function testPdfToImg() 
    {
        $pdfPath = BASE_PATH.'/test.pdf';
        $images = $this->pdfImage->pdfToImages($pdfPath);
        print_r($images);
    }
}

图片相关

pdf相关

  1. pdf 转换为图片
  2. 指定 pdf 页数替换图片
  3. 指定 pdf 页数图片合成
  4. 指定 pdf 页数添加文字

所有安装扩展的前提条件是你的环境 php 已经安装好,且 pecl 也已经安装

CentOS/RHEL 环境下

# 安装依赖
sudo yum install ImageMagick ImageMagick-devel

# 安装 PHP Imagick 扩展
sudo yum install php-imagick

# 或使用 pecl 安装
sudo yum install php-pear php-devel gcc
sudo pecl install imagick

# 启用扩展
echo "extension=imagick.so" | sudo tee /etc/php.d/imagick.ini

# 重启 PHP 服务
sudo systemctl restart php-fpm  # 如果使用 PHP-FPM
sudo systemctl restart httpd    # 如果使用 Apache

Ubuntu/Debian

# 安装依赖
sudo apt update
sudo apt install imagemagick libmagickwand-dev

# 安装 PHP Imagick 扩展
sudo apt install php-imagick

# 或使用 pecl 安装
sudo apt install php-pear php-dev build-essential
sudo pecl install imagick

# 启用扩展
echo "extension=imagick.so" | sudo tee /etc/php.d/imagick.ini

# 重启 PHP 服务
sudo systemctl restart php-fpm 

Alpine Linux

# 安装imagemagick
apk --update add imagemagick
# 安装依赖
apk add jpeg-dev libpng-dev freetype-dev imagemagick-dev

# 安装扩展
pecl install imagick

# 配置信息
cd /usr/local/etc/php/conf.d
vi docker-php-ext-imagick.ini
extension=imagick.so

macOS (Homebrew)

# 安装 ImageMagick
brew install imagemagick
# 安装 PHP Imagick 扩展
# 方法1: 使用 pecl(推荐)
pecl install imagick

# 启用扩展
# 编辑 php.ini 文件,添加:
extension="imagick.so"

# 重启 PHP 服务
brew services restart php