zoukankan      html  css  js  c++  java
  • linux环境php将word转换成pdf

    原文地址: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/DEBS/
    
    $ 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失败");
    }
  • 相关阅读:
    hdu 2647 Reward
    hdu 2094 产生冠军
    hdu 3342 Legal or Not
    hdu 1285 确定比赛名次
    hdu 3006 The Number of set
    hdu 1429 胜利大逃亡(续)
    UVA 146 ID Codes
    UVA 131 The Psychic Poker Player
    洛谷 P2491消防 解题报告
    洛谷 P2587 [ZJOI2008]泡泡堂 解题报告
  • 原文地址:https://www.cnblogs.com/zhouqi666/p/10340838.html
Copyright © 2011-2022 走看看