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代码:
- 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;
- }
- }