公司需要将文档进行在线预览,鉴于网上没一个完整的踩坑流程而且大牛不愿写的情况,鄙人愿手操一份方便日后相见(段友可能懂)!
完全贴代码这种浪费读者时间的事情,恕小人难做到!
windows上的应用网上多多少少也能拼接,我就只记录一下linux的。所需文件和源码全部打包到了这里。
当然各位去官网更好。
一、Linux安装OpenOffice
解压OpenOffice文件:tar -zxvf Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar
进入文件夹内的RPMS文件夹内,并执行rpm -ivh *.rpm一次性安装相关rpm
cd desktop-integration
安装桌面的RPM(注意区分)
- 命令代码
rpm -ivh openoffice4.1.3-redhat-menus-4.1.3-9783.noarch.rpm
启动OpenOffice服务。
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
如果soffice命令不成功,就cd /opt/openoffice4/program/去这个目录去执行吧。
用ps -ef | grep openoffice来判断服务是否启动成功
二、Linux安装SwfTools
1、安装命令如下:
wget http://www.swftools.org/swftools-0.9.2.tar.gz
tar vxzf swftools-
0.9
.
2
.tar.gz
cd swftools-
0.9
.
2
./configure --prefix=/usr/swftools
make
make install
修改配置文件
vim /etc/profile(vi /etc/profile也可以)
export PATH=$PATH:/usr/swftools/bin/
source /etc/profile(这是我的个人习惯,让其生效,免得后患)
2、安装xpdf语言包
下载xpdf-chinese-simplified.tar.gz并在/user/share/xpdf下面解压出来
tar -zxvf xpdf-chinese-simplified.tar.gz
解压后的xpdf-chinese-simplified下面会有一个CMAP文件夹,把我给的压缩包里面的gkai00mp.ttf放进这个目录,然后修改
vi add-to-xpdfrc
内容如下:
cidToUnicode Adobe-GB1 /usr/share/xpdf/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/share/xpdf/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN /usr/share/xpdf/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK /usr/share/xpdf/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 /usr/share/xpdf/xpdf-chinese-simplified/CMap
toUnicodeDir /usr/share/xpdf/xpdf-chinese-simplified/CMap
displayCIDFontTT Adobe-GB1 /usr/share/xpdf/xpdf-chinese-simplified/CMap/gkai00mp.ttf
这时候把pdf转成swf看看效果
pdf2swf -s languagedir=/usr/local/xpdf/xpdf-chinese-simplified -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 "/opt/a.pdf" -o "/opt/a.swf"
把生成的a.swf下载本地看看是否正常
三
注意几大坑!!!
1、文件转PDF的时候乱码,需要在/opt/openoffice4/share/fonts/truetype加入支持中文字体的ttf文件。这时候要重启OpenOffice.
2、xpdf不把支持中文字体的东西加入进去会在pdf转swf的时候乱码。
3、路径显示问题。如果是单纯的tomcat,需要在tomcat下面的conf/server.xml里面的host内加入东西,比如你希望在/home/data下面显示东西。而你想在jsp中显示/swf.你就得写
<Context crossContext="true" docBase="/home/data" path="/swf" reloadable="false"/>