公司新闻

将想法与观点,与您一起分享~

开发案例插画 插画-树 插画-树

php利用imagick扩展将pdf导出成图片

润雪科技 时间:2024-06-21 14:00 浏览量:1094

需要先安装php的imagick扩展,两种方式,第一种是使用php,第二种是使用命令执行

随便用哪种执行需要修改nginx配置文件增加:proxy_read_timeout 600s;使其链接60秒后不断,不然pdf一旦过大60秒无法完成工作就断开链接了

 

$pdfFile = './public/123.pdf'; // PDF文件路径
$outputDir = './public/pdf/'; // 输出目录
 
// 确保Imagick扩展已启用
if (!extension_loaded('imagick')) {
    return abort('需要启用Imagick扩展');
}
 
// 创建Imagick对象
$imagick = new \Imagick();
// 设置分辨率为300 DPI
$imagick->setResolution(300, 300);
    
// 打开PDF文件
$imagick->readImage($pdfFile);
 
// 遍历每一页并保存为图片
foreach ($imagick as $key => $imag) {
    // 设置图片格式和质量
    $imag->setImageFormat('jpeg');
    $imag->setCompressionQuality(100);
    // 构建图片输出路径
    $outputFile = $outputDir . 'page-' . ($key + 1) . '.jpg';
    // 写入图片文件
    $imag->writeImage($outputFile);
}
 
// 清理资源
$imagick->clear();
$imagick->destroy();
 
return 'PDF转换成图片成功。';

 

// PDF文件路径  
$pdfFile = './public/123456.pdf';  
// 输出图片的路径(替换%d为页面索引,convert会自动处理)  
$outputDir = './public/pdf/';  
  
// 确保输出目录存在  
if (!is_dir($outputDir)) {  
    mkdir($outputDir, 0777, true);  
}  
  
// 调用convert命令,将PDF转换为PNG图片  
// 注意:这里使用了-density参数来设置DPI,你可以根据需要调整  
$command = "convert -density 300 $pdfFile $outputDir/output_%d.jpg";  
  
// 执行命令  
exec($command, $output, $returnVar);  
if ($returnVar === 0) {    
    return "pdf转图片成功";    
} else {    
    echo "错误:";    
    print_r($output);    
}

来源声明:本文【php利用imagick扩展将pdf导出成图片】由润雪科技编辑原创或采编整理,如需转载请注明来自润雪科技。以上内容部分(包含图片、文字)来源于网络,如有侵权,请及时与本站联系。

TAG标签:网站开发 网站设计

相关文章
如果您感觉我们的案例非常不错,请与我们取得联系~
立即咨询
获取方案及报价 023-6288-5285
网站建设流程 需求沟通
网站建设流程 签订合同
网站建设流程 项目开发
网站建设流程 上线/运营维护

张经理

186-9655-6121

邹经理

188-1980-6503

润雪科技二维码
电话咨询 在线咨询 微信咨询