0804记录安装php将Word转为pdf过程

一、安装宝塔

这一步就略过了

二、安装php相关扩展

  1. Fileinfo
  2. Redis
  3. Mcrypt
  4. Imagemagick
  5. Exif

三、Linux安装需要的软件

yum install libreofficeyum install libreoffice-headlessyum -y install  libreoffice-langpack-zh-Han*

依次安装上面几个软件,然后测试是否安装成功:

soffice --headless --invisible --convert-to pdf 1.docx

如果成功的话,会在同目录下创建一个同名的pdf文件。

四、安装PHP版的unoconv

下载地址:

GitHub - alchemy-fr/PHP-Unoconv

将下载的文件解压上传至网站目录,如果放到网站目录之外的,要注意将防跨站的.user.ini里的配置目录修改。

五、写PHP代码

$unoconv = Unoconv::create(array('timeout'          => 42,'unoconv.binaries' => '/www/wwwroot/xxwm2.cn/unoconv/unoconv',
));
$unoconv->transcode('./uploads/002.doc','pdf','./uploads/002-1.pdf');

Unoconv.binaries为你的unoconv的路径,注意这里需要有可执行权限,否则无法运行。

需要PHP函数 proc_open

如果你转过的PDF发现字体不对或乱码,有变形说明你的服务器上没有相应的字体。

六、处理字体问题

将win10电脑上的字体上传至服务器,打包 c:\windows\Fonts 为Fonts.zip 一定要是zip格式哦,rar在linux一般是解不了的。

然后在服务器上执行下面的命令:

unzip Fonts.zipmkdir /usr/share/fonts/wincp Fonts/* /usr/share/fonts/wincd /usr/share/fonts/winchmod  -Rf 755 *mkfontscale  mkfontdir  fc-cache –fv  

然后重启服务器即可

七、PDF转图片

FailedToExecuteCommand `'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r120x120' -dPrinted=false '-sOutputFile=/tmp/magick-GBf6dYRq4J5sLZcQAoOOWPwJA7nL0WDC%d' '-f/tmp/magick-BuJErt6i8ablV1wDlNB9JOONunxaJFKO' '-f/tmp/magick-4V1vEE3aX3j8_RCiGFXkTpfnqPDzy0T0'' (32512) @ error/ghostscript-private.h/ExecuteGhostscriptCommand/74

这里一般会遇到这样的问题。

参考上一篇,最后一部分

PHP将word文件转为图片预览_hotlinhao的博客-CSDN博客

$pdf = './uploads/002-1.pdf';
if (!extension_loaded('imagick')) {exit('1');
}
if (!file_exists($pdf)) {exit('2');
}$path = './uploads/pdfimg/';
$im = new \Imagick();
$im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
$im->setCompressionQuality(100);
$im->readImage($pdf);
foreach ($im as $k => $v) {$v->setImageFormat('png');$fileName = $path . md5($k . time()) . '.png';if ($v->writeImage($fileName) == true) {$return[] = $fileName;}
}
print_r($return);

注意将代码中的路径换成自己的即可。

至此就可以将word转换为图片。

本人在虚拟机上新建一个新的虚拟机测试了一遍完整的流程。可以正常使用。

如果你在生产服务器上遇到下面的错误:

Unoconv failed to execute command

而在虚拟机上可以运行,可以试试在linux命令行执行你的php代码,有时候是可以运行的,那就是unoconv权限的问题。

我在虚拟机上跑起来完全是没有问题的,但是在生产服务器上怎么就跑不了。用

#php think auto1

执行以后可以正常运行。判断为权限问题。(折腾三个多小时)

附上两个对有些人来说比较不好下载的资源:

php版unoconv-master用于将word转为pdf-PHP文档类资源-CSDN下载

ghostscript9.56-PHP文档类资源-CSDN下载

PHP将word文件转为图片之二相关推荐

  1. 这篇文章教你把word文件转为图片

    把word文件转为图片,一下子是没法转成的,需要先转成pdf,再转成图片,就可以达到目的,话不多说,直接上代码 //先将word转成pdf并放在字节数组流里面FileInputStream fileI ...

  2. PHP将word文件转为图片预览

    开发中遇到一个需求,需要在线预览word文件,在网上找到的解决方案有几种,在些做一下归类. 一.在线调用API接口直接预览 1.  微软的接口 https://view.officeapps.live ...

  3. php将word转txt,PHP如何将将word文件转为pdf

    PHP将word文件转为pdf的方法:首先修改[php.ini],并重启环境:然后安装微软office套件:最后配置office组件服务即可. PHP将word文件转为pdf的方法: 1.修改php. ...

  4. 在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会

    在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会 乱码原因是因为在linux系统下没有中文字体,所以转换的时候乱码,需要我们手动把window系 ...

  5. 【CTF】CTFHub------历年真题-暴力破解/word文件本质/图片修复/数据包分析一/滴答滴答/栅栏解救/磁盘恢复

    文章目录 历年真题 暴力破解 word文件本质 图片修复 好孩子看不见 数据包分析一 滴答滴答 栅栏解救 磁盘恢复 相关知识 CTF中常见的文件头和文件尾 历年真题 暴力破解 1.下载题目附件,发现加 ...

  6. 使用5.0.0版本的cssbox将html文件转为图片文件,并解决字体显示问题

    使用5.0.0版本的cssbox将html文件转为图片文件,并解决字体显示问题 1. 引入依赖 2. 编写Util类 3. 调用Util 4. 存在的问题 5. 解决字体不兼容问题 6. 官方文档 在 ...

  7. Java将Excel文件、Word文件转为PDF

    因为要做文件在线预览 . 网上找了方法是需要调用公网微软地址传入我的文件路径 <iframe src='https://view.officeapps.live.com/op/view.aspx ...

  8. java 在线给word 文件插入图片,并设置图片大小

    一.前言: 有时我们想在一篇word文档中的指定位置添加一张服务器上的图片,并且并且设置图片大小.这个对文档的操作一定是需要第三方api的.市面上对文档处理的插件有POI以及openoffice等等, ...

  9. java使用poi读写word中的图片(二)

    文章目录 准备工作 简单读取 复杂读取 查看Word的XML 特别说明:Word中的Svg图片 第一种写入图片到Word中的方式 第二种写入图片到Word中的方式 最后 准备工作 这里就不在复述了,可 ...

最新文章

  1. Android 获取屏幕尺寸与密度
  2. linux日志查看面试题,Linux 运维面试题 三剑客(sed awk grep)整理
  3. postman断言之常用函数
  4. 堆排序时间复杂度_图解堆结构、堆排序及堆的应用
  5. 基因组浏览器使用 (EPGG)
  6. 解读SSL ***技术(二)
  7. python单元测试断言_Python单元测试框架之pytest -- 断言-阿里云开发者社区
  8. android 的wifi定位
  9. 深度学习自学(二十二):推理框架-MNN
  10. 安卓开发工程师应该这样快速使用机智云APP开源框架
  11. 路径规划算法:A*算法 - 附代码
  12. 00.Spring源码编译
  13. 核桃的营养价值,核桃的功效与作用
  14. 傻瓜教学——什么是常量?常量可以分几类?它们分别又是什么?又有什么含义?
  15. Python模拟登陆强智教务以及使用(持续更新中)
  16. 获取客户端及服务器的信息
  17. 5分钟搞懂什么是深度学习
  18. 钉钉大肆抢夺TO B数字化办公市场 企业微信、金蝶、石墨文档、脉脉等危矣?...
  19. IO Workload Characterization Revisited: A Data-Mining Approach
  20. 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!

热门文章

  1. 6.26 考研又锤子了
  2. wi-fi和路由器怎么连接_Wi-Fi路由器天线是否相对于连接到它们的Wi-Fi设备“旋转”?...
  3. 2022年粮食行业市场分析
  4. android的优酷菜单,Android利用属性动画实现优酷菜单
  5. 谷歌向全体员工发放万元红包:外包员工和实习生也不例外
  6. python 经纬度批量逆向定位地址县市等信息
  7. python爬虫爬取-前程无忧-岗位信息
  8. 拓嘉辰丰:高价位的商品是否适合拼多多平台
  9. LeetCode.516 最长回文子序列 详解
  10. mysql 内嵌查询_mysql嵌套查询_MySQL