|
公司最近需要在线预览,在百度上搜了下,不用付费的,用的几乎最多就是OpenOffice+swftools+flexpaper。
* openoffice 主要是将*.doc,*.txt等文件通过jodconverter(版本用3.0,不用手动启动openoffice)转换成为pdf文件。
* swftools 主要是将pdf文件转换为swf文件
* flexpaper 不用安装,前端页面使用flexpaper查看swf文件。
程序在是linux系统上运行,需要在服务器端安装openoffice,swftools。
遇到的主要问题:中文显示的原因》(1)openoffice 中文转换乱码。 (2)swftools 中文乱码
* 安装xpdf语言包。解决swftools转换中文乱码。
安装步骤:
(1)安装openoffice(没测,在网上找的)
1. 首先先下载好需要的rpm包:Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz
或直接命令下载:wget heanet.dl.sourceforge.net/project/openofficeorg.mirror/4.0.0/binaries/zh-CN/Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz
放到服务器的目录下(也可以放到了opt下)
2. 将下载的openoffice解压(我直接解压到opt目录):tar -zxvf Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz
3. 解压后生成文件夹zh-CN 进到RPMS目录下,直接yum localinstall *.rpm
4. 再装RPMS/desktop-integration目录下的openoffice4.0-redhat-menus-4.0-9702.noarch.rpm:yum localinstall openoffice4.0-redhat-menus-4.0-9702.noarch.rpm
5. 安装完成直接启动Openoffice服务:
临时启动
/opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
一直后台启动
nohup /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
6. 查看服务是否启动(端口8100是否被soffice占用):netstat -lnp |grep 8100
显示结果:tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN 19501/soffice.bin
(2)安装swftools。需要安装几个组件。
# yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel
# 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
(3) swftools 使pdf2swf.exe变成可执行命令
# vim /etc/profile
export PATH=$PATH:/usr/swftools/bin/
(4) xpdf语言包。下载xpdf-chinese-simplified.tar.gz文件,解压到/usr/share/xpdf下,编辑add-to-xpdfrc文件。
要下载 Gbsn00lp.ttf gkai00mp.ttf
# tar zxvf xpdf-chinese-simplified.tar.gz
# mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/
# cd /usr/share/xpdf/xpdf-chinese-simplified
# vi add-to-xpdfrc
内容如下:
红色标记要注意,跟xpdf语言包解压路径一样。
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
(5) jodconverter 3.0 中文乱码或转换不显示
因为 linux 少字体。将C:/windows/fonts/下的所有字体 放到 /usr/share/fonts
# mkfontscale //若提示command not found. 则#yum install mkfontscale
# mkfontdir
# fc-cache
以上开发环境安装成功。
开发思路:(将跨域资源转成本地资源)。将阿里云上资源下载到本地,在本地进行转换,再由flexpaper插件显示。
flexpaper显示时,会出现些许问题。在这里不在介绍。
要记得swftools转换时,要记得加上 -T 9 。版本要用9。这样才能正常显示。
代码示例及 所需软件。
链接:https://pan.baidu.com/s/1jHU60se 密码:4ars
|
|
|