说明:

1.pdf转图片通过安装php扩展imagick实现。

2.由于windows扩展安装的一系列问题,建议在linux环境开发,windows大伙可以尝试安装。

3.为Centos 安装ImageMagick imagick for php步骤。ImageMagick是一套软件系列,主要用于图片的创建、编辑以及转换等  (安装方式有多种,本文只介绍一种安装方式)

(一)安装步骤:

1. 下载安装ImageMagick

wget ftp://mirror.aarnet.edu.au/pub/imagemagick/ImageMagick-6.6.8-10.tar.gz

tar -xzvf ImageMagick-6.6.8-10.tar.gz

./configure --prefix=/usr/local/imagemagick

make

make install

2.下载安装Imagick

地址:http://pecl.php.net/package/imagick

wget http://pecl.php.net/get/imagick-3.1.0RC1.tgz

tar -xzvf imagick-3.1.0RC1

phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick

make

make install

3.手动配置php.ini

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

Installing header files: /usr/local/php/include/php/

生成imagick.so到/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

至此,php扩展安装完成。

(二)使用方法

/**

* PDF2PNG

* @param $pdf 待处理的PDF文件

* @param $path 待保存的图片路径

* @param $page 待导出的页面 -1为全部 0为第一页 1为第二页

* @return 保存好的图片路径和文件名

* 注:此处为坑 对于Imagick中的$pdf路径 和$path路径来说, php版本为5+ 可以使用相对路径。php7+版本必须使用绝对路径。所以,建议大伙使用绝对路径。

*/

function pdf2png($pdf,$path,$page=-1)

{

if(!extension_loaded('imagick'))

{

return false;

}

if(!file_exists($pdf))

{

return false;

}

if(!is_readable($pdf))

{

return false;

}

$im = new Imagick();

$im->setResolution(150,150);

$im->setCompressionQuality(100);

if($page==-1)

$im->readImage($pdf);

else

$im->readImage($pdf."[".$page."]");

foreach ($im as $Key => $Var)

{

$Var->setImageFormat('png');

$filename = $path. md5($Key.time()).'.png';

if($Var->writeImage($filename) == true)

{

$Return[] = $filename;

}

}

//返回转化图片数组,由于pdf可能多页,此处返回二维数组。

return $Return;

}

/**

* Spliceimg

* @param array $imgs pdf转化png 路径

* @param string $path 待保存的图片路径

* @return string 将多个图片拼接为成图的路径

* 注:多页的pdf转化为图片后拼接方法

*/

function Spliceimg($imgs = array(),$img_path = '')

{

//自定义宽度

$width = 1230;

//获取总高度

$pic_tall = 0;

foreach ($imgs as $key => $value) {

$info = getimagesize($value);

$pic_tall += $width/$info[0]*$info[1];

}

// 创建长图

$temp = imagecreatetruecolor($width,$pic_tall);

//分配一个白色底色

$color = imagecolorAllocate($temp,255,255,255);

imagefill($temp,0,0,$color);

$target_img = $temp;

$source = array();

foreach ($imgs as $k => $v) {

$source[$k]['source'] = Imagecreatefrompng($v);

$source[$k]['size'] = getimagesize($v);

}

$num = 1;

$tmp = 1;

$tmpy = 2; //图片之间的间距

$count = count($imgs);

for ($i = 0; $i < $count; $i++) {

imagecopy($target_img, $source[$i]['source'], $tmp, $tmpy, 0, 0, $source[$i]['size'][0], $source[$i]['size'][1]);

$tmpy = $tmpy + $source[$i]['size'][1];

//释放资源内存

imagedestroy($source[$i]['source']);

}

$returnfile = $img_path.date('Y-m-d');

if (!file_exists($returnfile))

{

if (!make_dir($returnfile))

{

/* 创建目录失败 */

return false;

}

}

$return_imgpath = $returnfile.'/'.md5(time().$pic_tall.'pdftopng').'.png';

imagepng($target_img,$return_imgpath);

return $return_imgpath;

}

/**

* make_dir

* @param string $folder 生成目录地址

* 注:生成目录方法

*/

function make_dir($folder)

{

$reval = false;

if (!file_exists($folder))

{

/* 如果目录不存在则尝试创建该目录 */

@umask(0);

/* 将目录路径拆分成数组 */

preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);

/* 如果第一个字符为/则当作物理路径处理 */

$base = ($atmp[0][0] == '/') ? '/' : '';

/* 遍历包含路径信息的数组 */

foreach ($atmp[1] AS $val)

{

if ('' != $val)

{

$base .= $val;

if ('..' == $val || '.' == $val)

{

/* 如果目录为.或者..则直接补/继续下一个循环 */

$base .= '/';

continue;

}

}

else

{

continue;

}

$base .= '/';

if (!file_exists($base))

{

/* 尝试创建目录,如果创建失败则继续循环 */

if (@mkdir(rtrim($base, '/'), 0777))

{

@chmod($base, 0777);

$reval = true;

}

}

}

}

else

{

/* 路径已经存在。返回该路径是不是一个目录 */

$reval = is_dir($folder);

}

clearstatcache();

return $reval;

}

调用方法,实现将pdf 转为图片 进而拼接图片的功能~over~

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

php 将pdf生成图片,php 将pdf转成图片且将图片拼接相关推荐

  1. 【精】【PDF链接转图片】- Java用pdfbox将PDF的URL转换并压缩成图片,解决“口口口”乱码问题

    [业务场景]:做一个开电子发票的业务,中税返回我们一个pdf的url,这个url在web端是可以显示的,移动端:ios可以正常显示,安卓显示为是否要下载.产品邀请发票预览需让用户第一时间看到,不应该有 ...

  2. Android PDF原生实现 PDF阅读、PDF手势伸缩、PDF目录、PDF预览缩略图 PDF方案选择 google doc android-pdfview mupdf pdf.js x5

    ##1.背景 近期,公司希望实现安卓原生端的PDF功能,要求:高效.实用. 经过两天的调研.编码,实现了一个简单Demo,如上图所示. 关于安卓原生端的PDF功能实现,技术点还是很多的,为了咱们安卓开 ...

  3. 如何将PDF文件批量转换成图片格式

    在我们的日常工作中文件转换是一件常见的日常工作,而PDF文件转换是每一个上班族必备的技能之一,比如讲PDF文件转换成图片格式.毫无疑问PDF格式给用户带来更好的阅读体验,PDF文件是一页一页的文件形式 ...

  4. ImageMagick之PDF转换成图片(image)

    安装完ImageMagick之后,直接执行"magick convert f:\parseWord\tmp\testpdf.pdf f:\parseWord\tmp\testpdf.jpg& ...

  5. 程序显示文本框_python PDF转成图片小程序

    你有没有遇到过这样一个需求:把一批PDF文件转存成图片,或者说把某一个文件夹内所有的pdf文件都转换成图片.PDF文件转存成图片格式有很多种方法,可以使用PDF编辑器或者上传到专门转格式的网站上.但是 ...

  6. html转换为pdf php,js实现html转成pdf

    在项目开发的时候,我们偶尔或者是经常会遇到一些难题,关于用js吧html页面转换成pdf也是一个难题,意思是说相当于把整个页面截下来,然后保存成pdf. 其实,能够实现html转pdf的方法还是挺多的 ...

  7. c#中将pdf转换成图片(png,jpg....),无水印

    一:需要引用的主键: using O2S.Components.PDFRender4NET; 二:主要逻辑: /// <summary>/// PDF文档所有页全部转换为图片/// < ...

  8. 使用icepdf将pdf首页内容转成图片

    说明: 1.图片命名规则:给定的文件所属目录+给定的文件的名称+.+png,即同目录下同名称的png图片 2.基本业务: a.判断同目录下同名称的png图片是否存在,若已经存在直接return b.若 ...

  9. Pdf转成一张png或jpg图片

    把Pdf文件转成一张png或jpg图片如下步骤: 1.下载第三方Pdf读取控件PDFFile. 2.如果想转成一张图片则用下面代码: <pre name="code" cla ...

最新文章

  1. 程序员面试题精选100题(04)-二元树中和为某一值的所有路径[数据结构]
  2. VS中怎样对C#项目进行单元测试
  3. 求区间不同数的个数 树状数组||莫队算法
  4. 【数字信号去噪】基于matlab小波软阈值+硬阈值+改进的阈值高斯脉冲信号去噪【含Matlab源码 1706期】
  5. Unix编程艺术-翻译-开篇
  6. idea下搭建vue开发环境
  7. 【2019-2020春学期】数据库作业18:第八章: 数据库编程(实验课大作业)
  8. html文件如何显示大纲视图,如何使用大纲视图生成章节目录
  9. python pandas合并多个excel,Python pandas实现excel工作表合并功能详解
  10. css设置字体颜色怎么设,css里面怎么设置字体颜色?
  11. 中病毒了文件夹变exe文件找到方法
  12. dubbo实战之四:管理控制台dubbo-admin
  13. 《刻意练习》读书分享
  14. 2021年7月电动汽车保有量,充电站数量
  15. OringPro 调整坐标轴
  16. 验证码论文概述-----中文篇
  17. 巨量引擎创意分类和创意标签使用技巧
  18. Java毕设项目户籍管理系统(java+VUE+Mybatis+Maven+Mysql)
  19. 力源信息是鸿蒙概念股吗,力源信息(300184)个股分析_牛叉诊股_同花顺财经
  20. 【Verilog七段译码器】

热门文章

  1. 无法开启 IE 开发者工具
  2. Ninth season twenty-first episode,Chandler and Monica may never have children??????
  3. 解决Vue启动报错 npm ERR! @1.0.0 dev: node build/dev-server.js
  4. 跨境电商细分领域的探索-扬帆际海
  5. linux 批量替换文件cp,Linux下批量修改文件名
  6. java gif等比例缩放_对gif动图进行缩放等处理(java)
  7. matlab根据根求多项式,matlab求解多项式的根
  8. 关于随机种子seed()的一点理解
  9. 数字信号处理(FIR滤波器的设计与原理及基础知识)
  10. Centos7配置 yum代理