1. 安装Imagick之前,您需要确保已安装PHP。如果您尚未安装PHP,请运行以下命令安装PHP及其常用扩展:
sudo apt install php php-cli php-imagick
2. 安装Imagick PHP扩展:
sudo apt install php-imagick
3.安装后,您需要重新启动Apache(如果正在使用):
sudo systemctl restart apache2
4.您可以通过运行以下命令来检查Imagick扩展是否已正确安装:
php -m | grep imagick
完成上述步骤后,您的Ubuntu系统应该已经安装了Imagick。您现在可以使用PHP代码来处理PDF文件并将其转换为PNG图像。
以下为PHP代码:
<?php
namespace common;use app\common\controller\Common;/*** 提供PDF管理服务* @name PDF.php* @package jypp* @category model* @link http://www.chanekeji.com* @author mengchen* @version 1.0* @copyright CHANGE INC* @since 2023-02-15*/
class PDF
{/*** PDF转PNG*/public function pdfToPng($pdf,$num = 2){ // 设置保存路径$savePath = sprintf('upload/pdf_images/%s',date('Ymd'));// 设置图片存放路径$path = sprintf('%spublic/%s',ROOT_PATH,$savePath);if (!file_exists($path)) {mkdir($path, 0755, true); //创建目录}$images = [];$imagick = new \Imagick();// 设置图片分辨率$imagick->setResolution(120, 120);// 该函数接受单个参数$quality,该参数保存一个表示图像压缩质量的整数值$imagick->setCompressionQuality(100);// 设置安全选项$imagick->setOption('security:policy', 'undefined');// 读取pdf文件$imagick->readImage($pdf);//获取文件页数$imagickNum = $imagick->getNumberImages();// 循环生成png图片foreach ($imagick as $key => $image) {if($key + 1 <= min($num, $imagickNum)){// 设置背景颜色$image->setImageBackgroundColor('white');$image->setImageAlphaChannel($imagick::ALPHACHANNEL_REMOVE); // 移除透明通道// 设置图片格式并生成png图片$image->setImageFormat('png');// 设置文件名$fileName = sprintf('%s.png',md5($key.time()));// 设置文件路径$file = sprintf('%s/%s', $path, $fileName);if ($image->writeImage($file) === true) {$images[] = sprintf('%s/%s',$savePath,$fileName);}}}return $images;}
}