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失败");
}
linux环境php将word转换成pdf的更多相关文章
- 【文件】使用jacob将word转换成pdf格式
使用jacob将word转换成pdf格式 1.需要安装word2007或以上版本,若安装07版本学确保该版本已安装2downbank0204MicrosoftSaveasPDF_ XPS,否则安装 ...
- C#将Word转换成PDF方法总结(基于Office和WPS两种方案)
有时候,我们需要在线上预览word文档,当然我们可以用NPOI抽出Word中的文字和表格,然后显示到网页上面,但是这样会丢失掉Word中原有的格式和图片.一个比较好的办法就是将word转换成pdf,然 ...
- linux环境下deb格式 转换成rpm格式
linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [root@mysqlnode2 ...
- 在Linux下将HTML文件转换成PDF文件
今天要写一个上交的作业,本来是想用Office Word来写的,但是,我的Office貌似不能用了,但是,Linux下的LibreOffice写出的文档,在打印的时候是经常出现乱码的.所以,后来想到可 ...
- linux命令行下xlsx转换成pdf或csv的笔记
使用libreoffice(可以用yum直接安装,占用了4xxM磁盘空间...) 然后命令行执行: 转换成csv,支持utf-8中文编码: libreoffice --invisible --con ...
- C#.net word excel powerpoint (ppt) 转换成 pdf 文件
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- ASP.NET将word文档转换成pdf的代码
一.添加引用 using Microsoft.Office.Interop.Word; 二.转换方法 1.方法 C# 代码 /// <summary> /// 把Word文件转换成pdf文 ...
- word ppt excel文档转换成pdf
1.把word文档转换成pdf (1).添加引用 using Microsoft.Office.Interop.Word; 添加引用 (2).转换方法 /// <summary> /// ...
- Linux不用使用软件把纯文本文档转换成PDF文件的方法
当你有一大堆文本文件要维护的时候,把它们转换成PDF文档会好一些.比如,PDF更适合打印,因为PDF文档有预定义布局.除此之外,还可以减少文档被意外修改的风险. 要将文本文件转换成PDF格式,你要按照 ...
随机推荐
- 如何在datepicker滚动完毕后触发事件去获得日期
本来以为这件事情应该需要借助datepicker的委托来处理的,但是并没有找到此空间的委托. 其实最最简单的做法就是在IB中将次控件connect到一个Action上. 经过测试,当datepicke ...
- Java将CST的时间字符串转换成需要的日期格式字符串
已知得到的Date类型的变量meettingdate 的值为Sun Dec 16 10:56:34 CST :现在要将它改为yyyy-MM-dd类型或yyyy年MM月dd日: 变为yyyy年MM月dd ...
- Nginx集群配置与redis的session共享策略
一.什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramb ...
- Redis在CentOS 7上的安装部署
简介: Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集( ...
- Redis 集群使用(2)
Redis包含三种集群策略: 主从复制 哨兵模式 redis cluster 主从复制 在主从复制中,数据分为两类:主数据库(master)和 从数据库(slave).其中主从复制有如下特点: 主数据 ...
- django渲染模板时跟vue使用的{{ }}冲突解决方法
var vm = new Vue({ el: '#app', // 分割符: 修改vue中显示数据的语法, 防止与django冲突 delimiters: ['[[', ']]'], data: { ...
- 19:django 分页
分页是网站中比较常见的应用,django提供了一些类帮助管理分页的数据,这些类都位于django.core.paginator.py文件里面 分页类 构造函数 class Paginator(obje ...
- python 基础 习题
1.执行 Python 脚本的两种方式2.简述位.字节的关系 1Byte = 8bits 3.简述 ascii.unicode.utf-8.gbk 的关系 都是字符集,unicode兼容其他3种字符集 ...
- 高性能网络服务器--I/O复用 select poll epoll_wait之间的区别
一.select select采用的是集合的方式,最多只能访问1024个套接字.可读,可写,异常,三种访问,并且采用的是轮训的方式进行每次访问都需要从内核向用户空间拷贝 二.poll poll采用的是 ...
- AC日记——Dynamic Ranking 洛谷 P2617
Dynamic Ranking 思路: 可持久化树状数组: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1 ...