PHPword文件转为图片预览
开发中遇到一个需求,需要在线预览word文件,在网上找到的解决方案有几种,在些做一下归类。
一、在线调用API接口直接预览
1. 微软的接口
https://view.officeapps.live.com/op/embed.aspx?src=你的文档地址
可以是word,excel等office文档,直接用iframe显示即可。适用于可公开的文件。
2. I DOC view
和微软的接口性质是一样的,具体可参照示例:
二、PhpOffice将word转换为html然后预览
GitHub - PHPOffice/PHPWord: A pure PHP library for reading and writing word processing documents
以上为phpWord的Github地址,使用composer安装,然后就可以转换,不过目前遇到的问题是:
1. 不能分页: 转换后的代码是一整串,没有进行分页。不便预览。这一点非常不好。
2. 图片的处理:通过网上查询可以将图片上传,然后使用IMG标签显示出来。
三、将word转为pdf,然后将pdf转换为图片预览
通过目前查询的资料,word不能直接转换为图片,需要先将图片转换为pdf。然后将pdf转换为PNG图片。
1. 安装 imagemagick扩展(宝塔环境在扩展中直接安装即可)
2. 安装libreoffice扩展
-
yum install libreoffice
-
-
yum install libreoffice-headless
-
-
yum -y install libreoffice-langpack-zh-Han*
安装完成libreoffice后,使用下面的代码来测试登上安装是否成功:
soffice --headless --invisible --convert-to pdf 1.docx
正常情况下,会在同目录下生成一个同名的PDF文件。
更多的使用方法可自行网上查询。
要在php中执行上面的代码,需要用到php的exec命令,这时候就需要解锁exec函数,宝塔在禁用函数中找到这个删除即可。其它的在php.ini中找到disable_functions里有一个exec函数去掉。
3.在php中word转pdf的方法 。
-
$result = exec("soffice --headless --invisible --convert-to pdf 1.docx");
-
-
echo json_encode($result);
soffice --headless --convert-to 目标格式(如pdf) 转格式文件 --outdir 目标文件夹
4. 将pdf转换为图片
-
public function pdf(){
-
$res = $this->pdf2png('./uploads/006.pdf','./uploads/pdf/');
-
dump($res);
-
}
-
-
-
private function pdf2png($pdf, $path)
-
{
-
if (!extension_loaded('imagick')) {
-
return false;
-
}
-
if (!file_exists($pdf)) {
-
return false;
-
}
-
$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;
-
}
-
}
-
return $return;
-
}
在执行的时候会发现,有一个错误提示类似下面的:
centos FailedToExecuteCommand `'gs'
这个是因为没有安装ghostscript导致的,需要在服务器上安装ghostScript.
ghostScript下载地址:
点击下面的源码下载然,然后上传至自己的服务器上。
安装很简单如下执行即可:
-
# tar -xzvf ghostscript-9.27.tar.gz
-
# cd ghostscript-9.27
-
# ./configure
-
# make
-
# make install
安装完成以后执行下面的命令,查看是否安装正常:
# gs --version
至此就将word转换成了png图片。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfiafbh
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13