linux環境php將word轉換成pdf
阿新 • • 發佈:2019-01-31
target ont org var .org sof ket exe ims
原文地址:http://www.niu12.com/article/15
ubuntu、java環境、openoffice、jodConverter、php
1.安裝java環境
a. jdk下載(我選的是jdk-8u201-oth-JPRXXXjdk-8u201-linux-x64.tar.gz)
b.將壓縮包移到指定目錄(自定義)
$ sudo mv jdk-8u201-linux-x64.tar.gz /usr/local/
解壓文件
$ sudo tar -zxvf /usr/local/jdk-8u201-linux-x64.tar.gz
c.配置java環境變量
$ sudo vim /etc/profile #在文件的最後添加如下內容 #Java Env export JAVA_HOME=/usr/local/jdk1.8.0_201 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin #生效環境變量 $ source /etc/profile #測試java環境 $ sudo java -version java version "1.8.0_201" Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
2.安裝openoffice
a. OpenOffice(我選的是4.1.6)
b.將壓縮包移到指定目錄(自定義)
$ sudo mv Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz /usr/local/
#解壓文件
$ sudo tar -zxvf /usr/local/Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz
#這個時候會生成zh-CN文件
#重命名
$ sudo mv ./zh-CN/ ./openOffice
c.配置openoffice
$ cd openOffice
$ sudo dpkg -i *.deb
$ cd desktop-integration/
$ sudo dpkg -i openoffice4.1-debian-menus_4.1.6-9790_all.deb
#這個時候openoffice安裝在/opt/openoffice4
3.安裝jodConverter
$ 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 #進入目錄 cd /opt/jodconverter-2.2.2/lib
4.加入中文字體,防止中文亂碼
#進入jdk字體目錄
$ cd /usr/local/jdk1.8.0_201/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/
#刷新字體緩存
fc-cache
5.啟動openOffice
$ soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
6.測試
#將tmp目錄下的test.docx轉換成test.pdf
$ sudo java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/test.docx /tmp/test.pdf
7.關閉openoffice進程
$ ps -ef|grep soffice
$ kill -9 30415
8.php調用
#需要修改php.ini文件,因為使用了disable_function exec()
#需要java的完全路徑
<?php
$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失敗");
}
linux環境php將word轉換成pdf