## pdf转换需要Java环境支持 相关压缩文件下载: [网盘下载](https://pan.baidu.com/s/1JPakavXHoY5u7N1dSAQKjQ ),提取码:jsls ### 安装搭建Java环境 一、下载jdk 该文件包可自行下载(以依赖文件中文件包解说) 二、将文件包导入服务器 一般文件放在 /usr/local 目录下,也可自行选择 三、解压两个文件(文件放在 /usr/local 目录下) ``` 1、jdk安装 cd /usr/local tar -zxvf jdk-8u181-linux-x64.tar.gz // 将在该目录下生成jdk1.8.0_181目录 // 配置jdk环境(到根目录) vim .bashrc // 在最后加入如下代码 ***************************************************** * export JAVA_HOME=/usr/local/jdk1.8.0_181/ * export JRE_HOME=$JAVA_HOME/jre * export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH * export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:. ***************************************************** // 退出保存该文件 // 使文件生效 source .bashrc // 查看jdk是否安装成功 java -version // 出现如下字表示安装成功 ************************************************************************* * java version "1.8.0_181" * Java(TM) SE Runtime Environment (build 1.8.0_181-b13) * Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) ************************************************************************* ``` ### 安装openoffice ``` // 文件下载依赖包【依赖文件:Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz】 // 上传到服务器并解压 tar -zxvf /usr/local/Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz // 解压后的文件目录为zh-CN,进行修改(重命名) mv ./zh-CN/ ./openOffice // 配置openoffice cd openOffice/DEBS/ dpkg -i *.deb cd desktop-integration/ dpkg -i openoffice4.1-debian-menus_4.1.6-9790_all.deb // 文件默认安装在/opt/openoffice4下 // 上述为Ubuntu环境,如果是centos环境采用如下命令(centos不支持deb文件安装): // 安装转换工具:yum install alien // 配置openoffice cd openOffice/DEBS/ // 转换成rpm文件 alien -r *.deb generated // 强制安装 rpm -ivh --nodeps --force *.rpm cd desktop-integration/ // 同理转换 alien -r openoffice4.1-debian-menus_4.1.6-9790_all.deb genrated // 安装 rpm -ivh --nodeps --force openoffice-debian-menus-4.1.6-9791.noarch.rpm ``` ### 安装jodConverter ``` // 进入/opt目录,并下载文件压缩包 cd /opt wget https://downloads.sourceforge.net/project/jodconverter/JODConverter/2.2.2/jodconverter-2.2.2.zip // 解压文件 unzip /opt/jodconverter-2.2.2.zip // 说明:其中jodconverter-2.2.2.zip可能下载下来不完整,笔者提供的压缩包中含有该文件! ``` ### 配置字体 ``` // 进入jdk字体目录 cd /usr/local/jdk1.8.0_201(你安装的jdk目录)/jre/lib/fonts/ // 建立fallback目录 mkdir fallback // 将中文字体msyh.ttf、msyhbd.ttf、simhei.ttf、simsun.ttc放到fallback目录下 // 依赖文件包中拷贝【依赖文件/字体】 // 将字体放到linux字体文件夹 cp /usr/local/jdk1.8.0_201/jre/lib/fonts/fallback/* /usr/share/fonts/ cp /usr/local/jdk1.8.0_201/jre/lib/fonts/* /usr/share/fonts/ // 刷新字体 fa-cache // 如果报错,根据提示安装即可 apt-get install fontconfig // 说明:字体也在笔者提供的压缩包中 ``` ### 启动openOffice(基本启动失败) ``` soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & // 如果启动失败 // 尝试安装 yum groupinstall "X Window System" // 失败则安装 apt-get install libxt6 ``` ### 本地环境测试 ``` java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/test.docx /tmp/test.pdf ``` ### PHP测试使用 ``` // 需要修改php.ini文件,因为使用了disable_function exec() // 需要java的完全路径 $command = "sudo /usr/local/jdk1.8.0_201/bin/java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/test.docx /tmp/test.pdf"; // $return_var返回值0或1,如果返回0则执行成功,返回1则执行失败 exec($command, $output, $return_var); if ($return_var != 0) { throw new \Exception("生成PDF失败"); } // 注意:一定是绝对路径,相对路径将会失败,文件名一定不能含有中文,否则也将失败 // 如果php执行未能生成PDF或生成了PDF但是无法下载,那么需要考虑是否是权限问题导致的 ```