【环境参数】

Host:Win7 64bit

VMware:VMware Workstation11.1.0

Client OS:CentOS release 6.5 (Final) 2.6.32-431.el6.x86_64

Third-Party Software:

①Apache_OpenOffice_4.1.1_Linux_x86-64_install-rpm_zh-CN.tar

②swftools-2013-04-09-1007.tar.gz

③xpdf-chinese-simplified.tar.gz

【下载链接】

(1)OpenOffice的下载链接

官网链接:http://download.openoffice.org/all_rc.html#untested-full

云盘连接:http://pan.baidu.com/s/1qWopNAk

(2) swftools的

官网链接:http://www.swftools.org/download.html

云盘连接:http://pan.baidu.com/s/1pJMhOZx

(3)xpdf-chinese-simplified.tar.gz的云盘连接:http://pan.baidu.com/s/1dndgi

(在解压后的Cmap目录中,已包含gkai00mp.ttf和gbsn00lp.ttf字体文件)

【简述】

最近公司要求实现一个类似豆丁网、百度文库这样的在线预览的功能,需要用到两个软件swftools和openOffice,两个软件win平台运行正常,公司linux服务器运行遇到一些麻烦,下面我把linux平台安装顺序记录下来以做以后参考也分享给大家。

【安装描述】

一、安装Open Office

1 解压 tar -zxvf Apache_OpenOffice_4.1.1_Linux_x86-64_install-rpm_zh-CN.tar.gz

2 解压后进入到解压出来的文件下 里面有3个文件夹和1个文件:分别是licenses readmes RPMS 文件夹 和update文件

3 进入到RPMS 文件夹下 输入命令 rpm -ivh *.rpm 开始安装 (因为RPMS 文件夹下有很多rpm包)用这条命令就能安装所有的

4 安装完后 进入到RPMS 文件夹下的desktop-integration文件夹 desktop-integration夹里有4个rpm包 分别是四个不同发行版的linux,选择相应发行版本那个rpm包,用 rpm 命令进行安装。

二、启动openOffice服务 

在Linux环境中,启动openoffice的服务。

[root@zjHost bin]# /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

注意:确保每次进行在线浏览之前,Open Office的服务已经启动了,否则,将无法进行在线预览。

三、swftools的编译安装和配置。

1、安装所需的库和依赖组件。

主要安装的是下面几个组件。

yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel

2、下载编译安装swftools。

tar -zxvd swftools-2013-04-09-1007.tar.gz

cd swftools-2013-04-09-1007

./configure --prefix=/application/swftools_20130409_soft

make

make install

3、设置swftools环境变量,使pdf2swf成为一个可执行命令

[root@zjHost bin]# vim /etc/profile

export JAVA_HOME=/application/jdk1.7.0_45

export SWF_TOOLS_HOME=/application/swftools_20130409_soft

export PATH=.:/application/mysql/bin:$SWF_TOOLS_HOME/bin:$JAVA_HOME/bin:$PAT

4、刷新profile,使得新配置的环境变量生效。

[root@zjHost bin]# vim /etc/profile

四、安装和配置xpdf语言包

1、下载xpdf-chinese-simplified.tar.gz文件,解压到/usr/local/share下

解压之后,xpdf的语言包为:/usr/local/share/xpdf-chinese-simplified

2、编辑add-to-xpdfrc文件,如下:

[root@zjHost share]# vim /usr/local/share/xpdf-chinese-simplified/add-to-xpdfrc

内容如下所示:

#----- begin Chinese Simplified support package (2011-sep-02)

cidToUnicode    Adobe-GB1       /usr/local/share/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode

unicodeMap      ISO-2022-CN     /usr/local/share/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap

unicodeMap      EUC-CN          /usr/local/share/xpdf-chinese-simplified/EUC-CN.unicodeMap

unicodeMap      GBK             /usr/local/share/xpdf-chinese-simplified/GBK.unicodeMap

cMapDir         Adobe-GB1       /usr/local/share/xpdf-chinese-simplified/CMap

toUnicodeDir                    /usr/local/share/xpdf-chinese-simplified/CMap

displayCIDFontTT    Adobe-GB1    /usr/local/share/xpdf-chinese-simplified/CMap/gbsn00lp.ttf

displayCIDFontTT    Adobe-GB1    /usr/local/share/xpdf-chinese-simplified/CMap/gkai00mp.ttf

#----- end Chinese Simplified support package

注意:

(1)路径要配置正确

(2)要注意最后两行的配置

字体文件自己下载…

字体文件来源:直接将windows系统的相关字体复制到linux字体目录下,windows字体目录 c:\windows\fonts,linux字体目录 /usr/share/fonts

3、最后使用如下转换命令测试:

pdf2swf -s languagedir=/usr/local/share/xpdf-chinese-simplified/ -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 "/opt/123.pdf" -o "/opt/test/%.swf"

五、在Java程序中调用pdf2swf时的代码

Process p = r.exec("pdf2swf -s languagedir=/usr/local/share/xpdf-chinese-simplified -T 9 "+ pdfFile.getPath() +" -o "+swfFile.getPath());

注意:一定要带上“-s languagedir=....”这个参数,否则,就无法解析中文。

【OpenOffice+swftools】在线预览环境的搭建和xpdf中文包的配置的更多相关文章

  1. 文档在线预览开源实现方案一:OpenOffice + SwfTools + FlexPaper

    在文档在线预览方面,项目组之前使用的是Microsoft office web apps, 由于该方案需要按照微软License付费,项目经理要我预研一个文档在线预览的开源实现方案.仔细钻入该需求发现 ...

  2. java实现word转pdf在线预览(前端使用PDF.js;后端使用openoffice、aspose)

    背景 之前一直是用户点击下载word文件到本地,然后使用office或者wps打开.需求优化,要实现可以直接在线预览,无需下载到本地然后再打开. 随后开始上网找资料,网上资料一大堆,方案也各有不同,大 ...

  3. Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现

    笔者最近在给客户开发文档管理系统时,客户要求上传到管理系统的文档(包括ppt,word,excel,txt)只能预览不允许下载.笔者想到了百度文库和豆丁网,百度文库和豆丁网的在线预览都是利用flash ...

  4. Java+FlexPaper+swfTools 文档在线预览demo

    1.概述 主要原理 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexP ...

  5. 使用jodconverter和swftools实现文件在线预览

    参考:仿百度文库解决方案(四)——利用JODConverter调用OpenOffice.org服务转换文档为PDF 文档在线预览主要用到如下两个工具 1,安装openoffice(同时下载jodcon ...

  6. SpringBoot-文件在线预览解决方案-基于OpenOffice及jacob

    项目中有一个需求:实现文件(主要是Office文件)的在线预览,根据前端需求,Office文件需要转换成pdf或者html方可在浏览器中打开预览,那么后端需要将文件转为pdf/格式返回地址给前端.目前 ...

  7. Java通过openOffice实现word,excel,ppt转成pdf实现在线预览

    Java通过openOffice实现word,excel,ppt转成pdf实现在线预览 一.OpenOffice 1.1 下载地址 1.2 JodConverter 1.3 新建实体类PDFDemo ...

  8. 文档在线预览开源实现方案二:OpenOffice + pdf.js

    文档在线预览的另一种实现方式采用的技术栈是OpenOffice + pdf.js, office文档转换为pdf的工作依然由OpenOffice的服务来完成,pdf生成后我们不再将其转换为其他文件而是 ...

  9. [Asp.net]使用flexpaper+swftools大文件分页转换实现在线预览

    引言 之前总结了在线预览几种常见解决方案,可以戳这里: http://www.cnblogs.com/wolf-sun/p/3569960.html http://www.cnblogs.com/wo ...

随机推荐

  1. 【Todo】Python的工作原理

    参考这篇: http://python.jobbole.com/86086/?from=timeline&isappinstalled=1&nsukey=MWQG%2B7OI4FvdQ ...

  2. 监控tomcat性能

    tomcat经常被用作中间件,也有直接作WEB的,自带的工具不是很给力,推荐以下的办法 工具/原料 javamelody 方法/步骤   下载 javamelody.jar和 jrobin-x.jar ...

  3. CodeForces Round #297 Div.2 E (中途相遇法)

    当时打比赛的时候卡在D题了,没有看E.现在看来E还是不难的. 将n个数排序后,其实不排序也是可以的,只是排序能快一半的时间. 枚举前一半能得到多少种和,放到map里面: 然后在后一半数中枚举,然后在m ...

  4. HDU 2149 (巴什博奕) Public Sale

    没什么好说的,一道水题. #include <cstdio> int main() { int n, m; ) { if(n <= m) { for(int i = n; i < ...

  5. 几个排序算法的JS实现

    最近找工作,复习一下数据结构的知识,看到排序这一块,顺便动手改了一下. 直接插入排序: 插入排序就是把数据分为有序区和无序区,遍历到的数据和有序区域的数据进行比较,找到要插入的位置,插入位置后的数据做 ...

  6. 二分图带权匹配、最佳匹配与KM算法

    ---------------------以上转自ByVoid神牛博客,并有所省略. [二分图带权匹配与最佳匹配] 什么是二分图的带权匹配?二分图的带权匹配就是求出一个匹配集合,使得集合中边的权值之和 ...

  7. ECSHOP 商品评论条件修改——购买过该商品且只能评价一次(购买多少次能评价多少次)

    下文转自http://bbs.ecshop.com/thread-1131529-1-1.html ECSHOP 商品评论条件修改,修改为购买过该商品多少次,就只能评价多少次.不需要修改数据库,原理简 ...

  8. 【Android】SDK工具学习 - bmgr

    bmgr官方文档 我自己的理解就是bmgr也是一款命令行工具,主要操作Android设备中的Backup Manager(支持API8.0以上的ADT) 主要就是备份(Backup)和还原(Resto ...

  9. ODBC访问不到Server的问题

    安装了ODBC-MYSQL的配置以后,发现在测试连接Mysql服务器的时候,一直访问不通, 经过测试发现,安装ODBC的PC(windows 8.1 )上的防火墙阻止了连接,最终确认需要 把虚拟机监控 ...

  10. php 使用date()函数的报错

    错误提示: Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* ...