💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## pdf转换需要Java环境支持以及后续的合同电签套打等都需要 相关压缩文件下载: [网盘下载](https://pan.baidu.com/s/1JPakavXHoY5u7N1dSAQKjQ ),提取码:jsls 笔者获取(2319048747@qq.com,备注jdk或者tomacat) 1、安装搭建Java环境 ``` 一、下载tomcat及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) * ************************************************************************* 2、tomcat安装 cd /usr/local tar -zxvf apache-tomcat-8.5.33.tar.gz // 将在该目录下生成apache-tomcat-8.5.33目录 // 将eqb的war包放入 /usr/local/apache-tomcat-8.5.33/webapps 以上工作 然后在启用tomcat就可以工作了 但是实际上tomcat服务默认是以tomcat用户组运行的,不符合php项目以www用户组运行的标准 在tomcat生成的文件,在我们项目中文件是无权限访问的 四、用www用户组权限运行tomcat cd /usr/local/apache-tomcat-8/bin tar -zvxf commons-daemon-native.tar.gz cd commons-daemon-1.1.0-native-src/unix/ ./configure make cp jsvc ../../ cd .. vim daemon.sh // 将TOMCAT_USER 改为 www,并指定java jdk安装环境 ***************************************************** * test ".$TOMCAT_USER" = . && TOMCAT_USER=www * * # Set JAVA_HOME to working JDK or JRE * * JAVA_HOME=/usr/local/jdk1.8.0_181 * ***************************************************** 保存后退出 五、启动tomcat 必须使用 daemon.sh 命令启动 ./daemon.sh start //启动tomcat服务 六、其他辅助设置 为了方便我们将Tomcat设置为服务(在init.d下创建软连接): ln -s /usr/local/apache-tomcat-8.5.33/bin/daemon.sh /etc/init.d/tomcat8 可以使用service Tomcat9 start进行启动了 设置Tomcat为开机自启动服务,需先将tomcat设置为服务:update-rc.d tomcat8 defaults 移除Tomcat开机自启动,执行以下命令:update-rc.d Tomcat9 remove ``` 2、安装openoffice ``` 文件下载依赖包【依赖文件:Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz】 2.1 上传到服务器并解压 tar -zxvf /usr/local/Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz 2.2 解压后的文件目录为zh-CN,进行修改(重命名) mv ./zh-CN/ ./openOffice 2.3 配置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 ``` 3、安装jodConverter ``` 3.1 进入/opt目录,并下载文件压缩包 cd /opt wget https://downloads.sourceforge.net/project/jodconverter/JODConverter/2.2.2/jodconverter-2.2.2.zip 3.2 解压文件 unzip /opt/jodconverter-2.2.2.zip // 说明:其中jodconverter-2.2.2.zip可能下载下来不完整,笔者提供的压缩包中含有该文件! ``` 4、配置字体 ``` 4.1 进入jdk字体目录 cd /usr/local/jdk1.8.0_201(你安装的jdk目录)/jre/lib/fonts/ 4.2 建立fallback目录 mkdir fallback 4.3 将中文字体msyh.ttf、msyhbd.ttf、simhei.ttf、simsun.ttc放到fallback目录下 依赖文件包中拷贝【依赖文件/字体】 4.4 将字体放到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/ 4.5 刷新字体 fa-cache // 如果报错,根据提示安装即可 apt-get install fontconfig // 说明:字体也在笔者提供的压缩包中 ``` 5、启动openOffice(基本启动失败) ``` soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & // 如果启动失败 尝试安装:yum groupinstall "X Window System" 失败则安装:apt-get install libxt6 ``` 6、本地环境测试 ``` java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/test.docx /tmp/test.pdf ``` 7、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失败"); } // 注意:一定是绝对路径,相对路径将会失败,文件名一定不能含有中文,否则也将失败 ``` 8、如果php执行未能生成PDF或生成了PDF但是无法下载,那么需要考虑是否是权限问题导致的