重要:关于PPT转图片需要注意的问题
它的路径是:/Applications/LibreOffice.app/Contents/MacOS/soffice
php调用具体转换命令为:
<?php
switch(strtolower(PHP_OS)){
case 'darwin':
$libreoffice = '/Applications/LibreOffice.app/Contents/MacOS/soffice';
break;
case 'linux':
$libreoffice = 'sudo /usr/bin/libreoffice';
break;
case 'windows':
$libreoffice = 'C:\Program Files\LibreOffice 5\program\soffice.exe';
break;
default:
$libreoffice = 'sudo /usr/bin/libreoffice';
} $inputDir = WEB_ROOT . '/web' . $pdfupload_dir;
$outputFile = WEB_ROOT . '/web' . $node_ppt_file['uri'] . $node_ppt_file['filename'];
$cmd = "{$libreoffice} --headless --convert-to pdf --outdir {$inputDir} {$outputFile} 2>&1"; exec($cmd);
//exec命令的第二、三个参数可以输出具体报错信息(当然这个报错是结合命令末尾的:2>&1)
//$res = exec($cmd,$output,$return_var);
//print_r($output);
//print_r($return_var);
//exit;
/Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to pdf --outdir /Users/Bruce/www/tp_center/frontend/web/uploads/casepdf/20171204/ /Users/Bruce/www/tp_center/frontend/web/uploads/caseppt/20171204/50112bdd50d6a36e87b5b91a9ffe6821.pptx 2>&1

解决方法:
I had the same problem on MacOS High Sierra, PHP 7.0 installed from Homebrew. The problem is that FPM $PATH
contains (as echoed by <php echo getenv('PATH'); ?>
) /usr/bin:/bin:/usr/sbin:/sbin
, which doesn't include Brew's /usr/local/bin/
install path.
To solve I added
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
to /usr/local/etc/php/7.0/php-fpm.d/www.conf
, restarted php70 and worked!
6、对于CentOS,命令前一定要加上sudo,否则肯定会出现权限问题
且需要配置sudo权限,配置方法如下:
PHP脚本调用exec执行权限设置
1.PHP 调用exec执行linux 系统命令时,是以apache 默认user执行,user设置在 httpd.conf文件
User ×××××
Group ××××
2.如果直接调用exec ('****') 执行root级命令,会报权限不足,这时需要用 sudo exec ('')
3.sudo 执行过程需要输入用户密码,势必对PHP执行带来极大不便,如何取消密码、屏蔽过程信息等,可以在 sudo 配置文件/etc/sudoers里设置
添加sudo用户
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
apache ALL=(ALL) NOPASSWD: ALL
注释掉 Defaults requiretty (屏蔽中途信息)
添加PATH: Defaults secure_path = /sbin:/bin:/usr/sbin
4.一些可执行脚本需要调用lib,默认不会继承root的LD_LIBRARY_PATH ,报错如下:
error while loading shared libraries: libavformat.so.56: cannot open shared object file: No such file or directory
解决办法:编辑 /etc/lib.so.conf
添加相应lib路径:/usr/ffmpeg/lib/
执行sudo ldconfi
以上是我遇到的坑,看到这篇文章的童鞋,希望你们能跳过这些坑。
重要:关于PPT转图片需要注意的问题的更多相关文章
- C#实现 word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
- word、pdf、ppt 转为图片
office word文档.pdf文档.powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word.pdf.ppt文档的每一页转换成一张对应的图片,就像 ...
- php实现ppt转图片,php调用com组件问题
PHP 调用com组件将ppt转为图片. 需要在php.ini中开启 extension=php_com_dotnet.dllcom.allow_dcom = true 测试代码如下: < ...
- 实现PPT在线预览,PPT转图片方案
一.PPT转图片可行方案探索历程 PPT转图片方案 方案具体步骤及分析 已放弃方案 poi(失真度太高):Aspose直接转图片(收费,效果较好,备选):微软Office Online(需要基于Win ...
- Java 转PPT为图片、PDF、SVG、XPS、ODP以及PPT和PPTX互转
同一文档,在不同的文档查看器或者编译环境中,需要对该文档进行相应的格式转换.下面的内容中,将介绍通过Java编程来实现PPT文档格式转换的方法. 使用工具: Spire.Presentation fo ...
- WPF解析PPT为图片
偶遇需要解析 PPT为单张图片 其中,对于包含动画的PPT页,分别对动画最后效果进行截取,即每个连续动画截取 (动画N个)N+1(原图)张 http://git.oschina.net/jiailiu ...
- linux下用php将doc、ppt转图片
解决方案分成两步: (1)调用unoconv命令将 doc.ppt 转 pdf (2)使用 imagemagick将 pdf 转图片 步骤 1.安装unoconv sudo apt-get insta ...
- aspose ppt转图片
如果直接转图片,会很模糊采用先将ppt转pdf,在通过pdf转图片,这样出来的结果就非常清晰 var pptFileName = "公司网络及计算机使用与要求.pptx"; Pre ...
- 用VBS将PPT转为图片
'使用方法:把ppt文件拖放到该文件上. '机器上要安装Powerpoint程序 On Error Resume Next Set ArgObj = WScript.Arguments pptfile ...
随机推荐
- (转)Java中使用正则表达式的一个简单例子及常用正则分享
转自:http://www.jb51.net/article/67724.htm 这篇文章主要介绍了Java中使用正则表达式的一个简单例子及常用正则分享,本文用一个验证Email的例子讲解JAVA中如 ...
- Kinect v2(Microsoft Kinect for Windows v2 )配置移动电源解决方案
Kinect v2配置移动电源解决方案 Kinect v2如果用于移动机器人上(也可以是其他应用场景),为方便有效地展开后续工作,为其配置移动电源是十分必要的. 一.选择移动电源 Kinect v2原 ...
- Python实现正交实验法自动设计测试用例
1.简介 正交试验法是研究多因素.多水平的一种试验法,它是利用正交表来对试验进行设计,通过少数的试验替代全面试验,根据正交表的正交性从全面试验中挑选适量的.有代表性的点进行试验,这些有代表性的点具备了 ...
- JAVA基础知识总结:十
一.抽象类 1.定义 当多个类中出现相同功能,但是功能主体是不同的,这是可以进行向上抽取的,只抽取功能的定义部分,使用抽象类实现 抽象类的存在就是为了被继承 2.使用 abstract 3.抽象类的特 ...
- Java基础笔记8
Object类 Object类是所有类的父类. 如果某个类没有显示的继承某个父类,那么该类则继承Object. 类 Object 是类层次结构的根类.每个类都使用 Object 作为超类. 所有对象( ...
- javascript中数组与字符串之间的转换以及字符串的替换
数组转化为字符串: var a=['aa','bb','cc']; var b=a.join('-'); console.log(b)----->'aa-bb-cc' 字符串中的替换: 1.re ...
- JavaUtil_04_验证码生成器
一.原理 验证码其实就是随机串.原理上可分为两种: 1.简单的验证码 直接通过字母和数字的ASCII码生成.本文采用的验证码就是这种. 2.复杂的验证码 通过一个随机串,一个指定串(如accesske ...
- FTP配置的一些笔记
1.必须关闭防火墙 iptables -F iptables -X iptables -Z vi /etc/selinux/config SELINUX=disabled seten ...
- SignalR实现消息推送,包括私聊、群聊、在线所有人接收消息(源码)
一.关于SignalR 1.简介:Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面, ...
- 关于史考特证券(scottrade Inc)资金转出的手续费问题
投资美股账户的朋友可能开始的时候并没有关心史考特账户转出的费用,其实,仔细算一下这个费用还是蛮贵的,根据官网的文档可以明确知道,转出史考特账户资金到国内银行的费用由以下几项组成: 1. 国际电汇资金费 ...