公司新闻

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

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

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

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

需要先安装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标签:网站开发 网站设计

相关文章
  • php用Mpdf将html文档转为pdf

    php用Mpdf将html文档转为pdf

    php将html文档转成pdf保存到服务器

  • php用libreoffice将ppt转为pdf

    php用libreoffice将ppt转为pdf

    1、先安装libreoffice:yum install libreoffice;2、由于ppt中都是中文,执行命令转ppt的时候中文可能乱码,我的解决办法是在liunx系统中安装中文字体,把windows的字体直接全部拷贝到liunx服务器中,直接把所有字体都上传到服务器

  • apache配置转发,如使用workerman 或 webman等框架的时候配合apache

    apache配置转发,如使用workerman 或 webman等框架的时候配合apache

    在使用workerman 或 webman等框架开发应用的时候需要配合nginx 或 apache进行转发,官网的文档只有写nginx,下面的apache的配置,前提是apche需要开启这两个模块

  • 一个class类几个函数即可调用各种微信支付场景

    一个class类几个函数即可调用各种微信支付场景

    真在的只需要一个class类文件几个函数就可以调用微信的所有支付,不管是微信公众号、h5、app、小程序支付,加密方式都是一样的,对比下微信的支付文档,只需要修改第一步传入的参数不同,下单地址不同,加密方式都是一样的,所以只要看懂下面的第一个函数,将搞定微信的任何支付。

  • 重庆网站建设mysql计算经纬度距离排序方法

    重庆网站建设mysql计算经纬度距离排序方法

    我们最近在开发一个交友聊天类的app,需要计算用户与用户之间的距离,然后通过距离来排序,距离排序还是比较简单的,因为现在可以直接使用mysql来完成了。

  • 重庆网站建设html定位获取用户的经纬度,转成省市区

    重庆网站建设html定位获取用户的经纬度,转成省市区

    用html5的特性来定位,可以定位到用户的详细经纬度,然后在用经纬度转换成省市区 ,先获取用户的经纬度,html前端js代码如下,注意,经过我们测试,网站必须要用https才能获取定位,http是无法定位的

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

张经理

186-9655-6121

邹经理

188-1980-6503

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