PHP将word文件转为图片之二
0804记录安装php将Word转为pdf过程
一、安装宝塔
这一步就略过了
二、安装php相关扩展
- Fileinfo
- Redis
- Mcrypt
- Imagemagick
- 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文件转为图片之二相关推荐
- 这篇文章教你把word文件转为图片
把word文件转为图片,一下子是没法转成的,需要先转成pdf,再转成图片,就可以达到目的,话不多说,直接上代码 //先将word转成pdf并放在字节数组流里面FileInputStream fileI ...
- PHP将word文件转为图片预览
开发中遇到一个需求,需要在线预览word文件,在网上找到的解决方案有几种,在些做一下归类. 一.在线调用API接口直接预览 1. 微软的接口 https://view.officeapps.live ...
- php将word转txt,PHP如何将将word文件转为pdf
PHP将word文件转为pdf的方法:首先修改[php.ini],并重启环境:然后安装微软office套件:最后配置office组件服务即可. PHP将word文件转为pdf的方法: 1.修改php. ...
- 在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会
在linux环境下com.aspose.words将word文件转为pdf后乱码,window环境下不会 乱码原因是因为在linux系统下没有中文字体,所以转换的时候乱码,需要我们手动把window系 ...
- 【CTF】CTFHub------历年真题-暴力破解/word文件本质/图片修复/数据包分析一/滴答滴答/栅栏解救/磁盘恢复
文章目录 历年真题 暴力破解 word文件本质 图片修复 好孩子看不见 数据包分析一 滴答滴答 栅栏解救 磁盘恢复 相关知识 CTF中常见的文件头和文件尾 历年真题 暴力破解 1.下载题目附件,发现加 ...
- 使用5.0.0版本的cssbox将html文件转为图片文件,并解决字体显示问题
使用5.0.0版本的cssbox将html文件转为图片文件,并解决字体显示问题 1. 引入依赖 2. 编写Util类 3. 调用Util 4. 存在的问题 5. 解决字体不兼容问题 6. 官方文档 在 ...
- Java将Excel文件、Word文件转为PDF
因为要做文件在线预览 . 网上找了方法是需要调用公网微软地址传入我的文件路径 <iframe src='https://view.officeapps.live.com/op/view.aspx ...
- java 在线给word 文件插入图片,并设置图片大小
一.前言: 有时我们想在一篇word文档中的指定位置添加一张服务器上的图片,并且并且设置图片大小.这个对文档的操作一定是需要第三方api的.市面上对文档处理的插件有POI以及openoffice等等, ...
- java使用poi读写word中的图片(二)
文章目录 准备工作 简单读取 复杂读取 查看Word的XML 特别说明:Word中的Svg图片 第一种写入图片到Word中的方式 第二种写入图片到Word中的方式 最后 准备工作 这里就不在复述了,可 ...
最新文章
- Android 获取屏幕尺寸与密度
- linux日志查看面试题,Linux 运维面试题 三剑客(sed awk grep)整理
- postman断言之常用函数
- 堆排序时间复杂度_图解堆结构、堆排序及堆的应用
- 基因组浏览器使用 (EPGG)
- 解读SSL ***技术(二)
- python单元测试断言_Python单元测试框架之pytest -- 断言-阿里云开发者社区
- android 的wifi定位
- 深度学习自学(二十二):推理框架-MNN
- 安卓开发工程师应该这样快速使用机智云APP开源框架
- 路径规划算法:A*算法 - 附代码
- 00.Spring源码编译
- 核桃的营养价值,核桃的功效与作用
- 傻瓜教学——什么是常量?常量可以分几类?它们分别又是什么?又有什么含义?
- Python模拟登陆强智教务以及使用(持续更新中)
- 获取客户端及服务器的信息
- 5分钟搞懂什么是深度学习
- 钉钉大肆抢夺TO B数字化办公市场 企业微信、金蝶、石墨文档、脉脉等危矣?...
- IO Workload Characterization Revisited: A Data-Mining Approach
- 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!
热门文章
- 6.26 考研又锤子了
- wi-fi和路由器怎么连接_Wi-Fi路由器天线是否相对于连接到它们的Wi-Fi设备“旋转”?...
- 2022年粮食行业市场分析
- android的优酷菜单,Android利用属性动画实现优酷菜单
- 谷歌向全体员工发放万元红包:外包员工和实习生也不例外
- python 经纬度批量逆向定位地址县市等信息
- python爬虫爬取-前程无忧-岗位信息
- 拓嘉辰丰:高价位的商品是否适合拼多多平台
- LeetCode.516 最长回文子序列 详解
- mysql 内嵌查询_mysql嵌套查询_MySQL