博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos下安装类百度文库环境
阅读量:7172 次
发布时间:2019-06-29

本文共 3815 字,大约阅读时间需要 12 分钟。

hot3.png

使用php实现百度文库功能,网上搜索到的方案,实现doc转pdf,pdf转swf,然后显示出来。

这里简单的记录下,【doc转pdf,pdf转swf】两个功能的搭建流程。

doc转pdf

使用到下列程序(文件):

  1. 字体文件(windows系统C:\Windows\Fonts目录下的文件)

实现原理:调用jodconverter的包转换doc为pdf,而jodconverter会去连接OpenOffice的soffice服务,实现转换。

两者在运行时都需要java环境的支持!而字体文件可以解决doc转为pdf时中文乱码问题!

字体文件需要自行打包Windows系统下字体文件(也许可以全部打包),先上传到服务器上,后面会用到,假设文件名为fonts.zip

安装java环境

JAVA环境的安装很简单,首先需要确认下系统中是否安装了java,并且确认java版本>=1.6。

#直接输入java -versionjava -version#如果安装了java,将会显示java的版本,如果么有,那赶紧安装吧!

安装方法可以使用yum安装,或者在java.com上下载rpm包、解压即用的压缩包。这里我使用解压即用的压缩包。

java.com界面截图:

我把文件放在/opt/java/jre下,那么可以这样来显示下java的版本:

/opt/java/jre/bin/java –version

添加环境变量:

vim /etc/profile#在文件内容最后写上: PATH=/opt/java/jre/bin:$PATH export PATH#保存退出后,使用source使环境变量立即生效source /etc/profile

这样java环境的搭建就完成了!

安装openoffice

注意,最新的openoffice 3.4.1版本不再捆绑java环境,所以需要手动搭建java环境。

首先,下载最新的openoffice安装包,地址:,选择适合自己的版本:

安装包大概140多M大小,我选择的简体中文,Linux86_64 RPM包的文件名为:Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

安装其实非常的简单:

#进入解压后的RPMS目录cd /opt/setup/openoffice-setup/zh-CN/RPMS#使用rpm命令安装rpm -ivh *.rpm

安装截图:

默认安装在/opt目录下,有两个文件夹:openoffice.org和openoffice.org3。

现在我们需要把已经准备好的字体文件fonts.zip解压到这个目录下:/opt/openoffice.org/basis3.4/share/fonts/truetype

解压完成后,OpenOffice环境就已经完成了,现在让我们来启动openoffice。

我在/opt/openoffice.org3/目录下新建了文件:sofficed。

内容为:

#! /bin/bash/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

记得修改sofficed文件的权限为755,便于程序调用执行!

#启动openoffice/opt/openoffice.org3/sofficed#将上面的命令写入/etc/rc.local文件中,即可开机启动了!

检查是否成功启动:

#进程查看ps -ef | grep soffice#端口查看netstat -tunlp | grep 8100

若能看到soffice相关信息便成功了!

安装jodconverter

此货的安装也很简单,下载安装包,解压即可!

下载地址:

我把文件放在了/opt/jodconverter下。

测试doc转pdf

当然了,首先得准备一个doc文件,然后使用下面这个命令测试:

java -jar /opt/jodconverter/lib/jodconverter-cli-2.2.2.jar doc文件路径 pdf文件路径

下载生成的pdf文件,打开看看吧。

pdf转swf

使用到的程序(文件)

pdf转swf的过程相对简单一点,只需要调用swftool程序的pdf2swf程序,xpdf-chinese-simplified和font.zip可以解决中文乱码问题!

swftool程序需要编译安装,这里先固定一下安装目录为:/opt/swftool。

字体文件安装

下载xpdf-chinese-simplified和font.zip文件,然后解压。

mkdir /opt/swftoolcd /opt/swftoolwget ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz
wget http://www.nginxs.com/download/font.zip#解压两个压缩包tar zxvf xpdf-chinese-simplified.tar.gzunzip font.zip #将font.zip解压出来的两个字体文件移到xpdf-chinese-simplified/CMap/目录下mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/#修改xpdf-chinese-simplified目录下的add-to-xpdfrc文件,内容如下:cidToUnicode    Adobe-GB1       /opt/swftool/xpdf-chinese-simplified/Adobe-GB1.cidToUnicodeunicodeMap      ISO-2022-CN     /opt/swftool/xpdf-chinese-simplified/ISO-2022-CN.unicodeMapunicodeMap      EUC-CN          /opt/swftool/xpdf-chinese-simplified/EUC-CN.unicodeMapunicodeMap      GBK             /opt/swftool/xpdf-chinese-simplified/GBK.unicodeMapcMapDir         Adobe-GB1       /opt/swftool/xpdf-chinese-simplified/CMaptoUnicodeDir                    /opt/swftool/xpdf-chinese-simplified/CMapdisplayCIDFontTT Adobe-GB1      /opt/swftool/xpdf-chinese-simplifies/CMap/gkai00mp.ttf

字体文件安装完成。

Swftool安装

首先安装下swftool必要的插件程序

yum install zlib-devel libjpeg-devel giflib-devel freetype-devel

如果安装过了,自动忽略掉,只安装没有的。

开始安装swftool:

tar vxzf swftools-2012-10-15-1307.tar.gzcd swftools-2012-10-15-1307./configure --prefix=/opt/swftoolmakemake install

如果没有异常信息,那就ok了。

测试pdf转swf

使用这个命令测试,同样在使用php代码时也可以这么调用:

/opt/swftool/bin/pdf2swf -o swf文件路径 -T -z -t -f pdf文件路径 -s languagedir=/opt/swftool/xpdf-chinese-simplified -s flashversion=9

需要注意languagedir这个参数。

其他的好像没什么了,就这么简单。

参考了这些文章:

关于PHP中执行exec函数

如果开启了Selinux,那么在exec函数中调用/var/www/html外的文件很容易被禁止,导致exec函数执行失败。

关闭Selinux:

#临时关闭setenforce 0#永久关闭vim /etc/sysconfig/selinux#将SELUNX的值修改为disabled,重启生效SELINUX=disabled
不关闭selinux,那么就要修改所调用文件的安全环境上下文。

这里调用java时被selinux阻止了,那么可以这么做:

cd /opt#将java目录的安全环境上下文还原restorecon -R -v java
这样Seliux就不会再阻止httpd程序访问java程序了。

转载于:https://my.oschina.net/lijialong/blog/109499

你可能感兴趣的文章
RegexBuddy正则表达式工具
查看>>
HDU 1024Max Sum Plus Plus(最大m字段和)
查看>>
经典算法
查看>>
css 文本属性详细总结
查看>>
MBR与GPT分区格式(实例-创建大于2TB的分区)
查看>>
给网游写一个挂吧(一) – 反反外挂驱动的驱动
查看>>
HashMap实现原理分析
查看>>
cas4.2.7实现单点登录
查看>>
SQLSERVER 18056 错误
查看>>
【普及】中小企业项目上线的一般流程
查看>>
mvn常用命令
查看>>
C语言之程序中内存的来源:栈 堆 数据段
查看>>
2012R2 VM on Hyper-v 2008 R2错误解决
查看>>
BIOS锁定纯UEFI启动的解锁办法
查看>>
php打包备份好的数据库文件(也可打包别的文件)
查看>>
JVM原理及调优
查看>>
读书笔记--101个shell脚本 之#12--函数
查看>>
TCP/IP之(四)Delay ack 和 Nagle算法
查看>>
linux学习:selinux 禁用后(disabled)Linux系统无法正常启动解决
查看>>
ldd ldconfig LD_LIBRARY_PATH的关系
查看>>