关于使用PHP转换office文件为PDF的解决方案!

25 篇文章 0 订阅

关于使用PHP转换office文件为PDF的解决方案!

最近遇到了相关的问题,需要让office相关文件在线浏览,类似于百度文库,之前接触过,知道可以使用pdf.js在线浏览PDF文件,那么现在就需要将Word文件转为PDF文件,PPT文件转为PDF文件,Excel文件转为PDF文件,然后让用户在线浏览,这样效果就达到了。本次着重讲解文件转换openoffice的使用。
目录如下:


必须配置Java运行环境

下载安装

主要安装OpenOffice 及 jodconverter (点此下载 原谅我打个友链
OpenOffice的官网地址: https://www.openoffice.org
OpenOffice的文档地址: https://wiki.openoffice.org/wiki/Main_Page
OpenOffice的下载地址: https://www.openoffice.org/download/index.html
这里面可以按照自己的操作系统进行选择并下载:

下载界面

下载之后直接以默认的方式安装即可,也可以自定义的哈。

设置权限

按照下方的步骤打开OpenOffice的服务管理配置:

cmd 运行Dcomcnfg.exe->组件服务->计算机->我的电脑->DCOM配置->OpenOffice Service Manager..

打开之后如下图:

OpenOffice服务管理

设置“安全”选项卡
选中OpenOffice的服务后,鼠标右键,选择“属性”,打开如下界面:

这里写图片描述

按照上图红框标识的进行设置,将“安全”选项 所有的内容都设置为 “自定义” > 然后添加 “Everyone” 用户,允许所有权限即可
设置 “标识”选项卡
选择 “交互式用户”  > 确认并应用

这里写图片描述

启动OpenOffice服务命令

打开cmd(建议用管理员权限运行,保证服务正常开启)
先进入OpenOffice安装目录,例如我安装的: cd  C:\Program Files (x86)\OpenOffice 4\program
启动服务:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 

运行之后,打开 “任务管理器”,可以看到应用已经正常运行了

这里写图片描述

使用jodconverter 转换文件

核心转换java命令行是

java -jar jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar  源文件路径  目标文件路径

可以直接使用以上命令,在dos命令行模式下进行转换。如此便可使用PHP代码执行此命令了,PHP的代码如下:

<?php
/**
 * Created by PhpStorm.
 * User: yezhimeih7
 * Date: 2017/4/6
 * Time: 16:13
 * copy: http://www.tcioc.com
 */

set_time_limit(0);
function openOffice($input_file,$type="pdf"){
    //转换路径的字符编码
    $input_file=iconv("utf-8", "gb2312", $input_file);
    //获取输出的标题
    $out_file=substr($input_file, 0,strrpos($input_file, "."));
    //非指定转换为PDF格式的文件,默认后缀为html
    if($type!=="pdf"){
        $out_file=$out_file.'.html';
    }else{
        // 对输出标题 去除空格 
        $out_file=$out_file.'.pdf';
        $out_file=trim($out_file);
        $out_file=str_replace(" ","",$out_file);
    }
    // dos 命令中,对于有空格的文件夹或者文件名,需要用 双引号(") 括起来,这样就可以正常运行dos命令了
    $file='java -jar jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar  ./'.'"'.$input_file.'"  ./'.'"'.$out_file.'" ';
    // PHP执行命令,这里在linux系统时,会有些不同
    $status=exec($file);
    return $status;
}
// 调用函数,处理转换
openOffice("./data/upload/ueditor/分析设计.pptx");

这里的PHP代码可以 用网站的形式访问,也可以用 cli 的模式运行。
运行成功之后,如下图所示:
这里写图片描述

注意:文件名中 带有 空格,依旧可以转换的哟~


Linux下OpenOffice的使用(转)

你需要几下载几个包,然后安装配置一下:

OOo_3.3.0_Linux_x86_install-rpm-wJRE_en-US.tar.gz
OOo-SDK_3.3.0_Linux_x86_install-rpm_en-US.tar.gz
jodconverter.2.2.2

1. 安装openoffice3

tar zxvf OOo_3.3.0_Linux_x86_install-rpm-wJRE_en-US.tar.gz
cd OOO330_m20_native_packed-1_en-US.9567/RPMS
rpm -ivh *.rpm --nodeps --force

安装后的默认目录是在:/opt/目录下面

启动服务:
/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

开机启动:
vi /etc/rc.local

在最后面加入启动语句

2. 安装OpenOffice SDK3.3
tar zxvf OOo-SDK_3.3.0_Linux_x86_install-rpm_en-US.tar.gz
cd OOO330_m20_native_packed-1_en-US.9567/RPMS/
rpm -vih *.rpm

3. 安装jodconverter.2.2.2 ,安装了这个之后就已经可以实现DOC转PDF了。
这个安装很简单,直接上网站下一个这个东东回来。
解压,复制到一个目录里面去,就能直接用了,调用它里面的/lib/jodconverter-cli-2.2.2.jar这个玩意儿就行,可以直接运行命令测试:  

java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/1.doc /tmp/1.pdf

配置运行上面的命令成功之后,可以参考windows下的PHP代码调用运行即可!

参考资料:
https://www.openoffice.org
http://blog.csdn.net/xyz_dream/article/details/52672319
https://zhidao.baidu.com/question/1047506507169557019.html
https://www.oschina.net/question/227511_87517
https://wiki.openoffice.org/wiki/Main_Page

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值