doc/jpg等文件在线浏览解决方案搭建

在公司OA和CRM系统遇到要实现在线查看word/jpg等文件的功能,按照开发小组的要求搭建了一套解决方案:OpenOffice + JodConvertor + SWFTool+ FlexPaper,其中OpenOffice + JodConvertor用于将文档转化为PDF格式文档,SwfTool用于将PDF转化为SWF文档,FlexPaper用于展示。使用这个解决方案的最大好处就是跨平台且较为简单。

1.1 安装openoffice

openoffice需要jdk的支持,而且默认已经安装,如果没有,手动下载Apache_OpenOffice_4.0.1_Linux_x86-64_install-rpm_zh-CN.tar.gz/usr/local/src(CentOS 6.4 x86_64):

# tar -zxf Apache_OpenOffice_4.0.1_Linux_x86-64_install-rpm_zh-CN.tar.gz
# cd zh-CN/RPMS
# rpm –ivh *.rpm

拷贝字体
安装完成后把windows(c:\windows\fonts)下的一些常用字体拷贝到 /opt/openoffice4/share/fonts/truetype 目录下,如Arial, Calibri, Courier New, Consolas等,如果你想正确的保留原doc的中文字体,还需要把 黑体、微软雅黑、宋体 常规、新宋体 常规、幼圆、隶书、楷体 等中文字体拷贝进去(重启进程后生效)。

启动后台进程
切换至普通用户,如wxcrm启动转换进程:

$ /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

# ps –ef | grep soffice

1.2 解压jodconverter

JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换工具,它利用OpenOffice来进行转换工作,它能完成以下转换:

  1. Microsoft Office格式转换为OpenDucument,以及OpenDucument转换为Microsoft Office
  2. OpenDucument转换为PDF,Word、Excel、PowerPoint转换为PDF,RTF转换为PDF等。

从 http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/ 下载jodconverter-2.2.2.zip解压到 /opt 目录下/opt/jodconverter-2.2.2/。手动转换测试,使用到的文件是安装包内的lib/jodconverter-cli-2.2.2.jar:

java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /home/oa/docker.docx /home/oa/docker.pdf

至此doc等文件格式可以成功转换成pdf。

2.1 swftool

swftool可以将pdf/jpg等转换成swf格式。搜索下载swftools-0.9.1.tar.gz(0.9.2在安装时可能需要错误处理):

# yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel
# tar vxzf swftools-0.9.1.tar.gz
# cd swftools-0.9.1

# ./configure --prefix=/usr/local/swftools
# make && make install

至此已安装完预览功能,可以通过:

/usr/local/bin/pdf2swf -t docker4.pdf -o docker4.swf -T 9 -f -z

测试转换。-t 后接待转换的pdf文件路径,-o接输出文件路径和名称,-T 9 设置使用flash版本9,这个设置主要是为了跟FlexPaper的版本对应; -f 保留字体,-z使用zlib进行压缩,这是最常用的几个命令,其他命令可以从SWF官网了解。

2.2 安装xpdf语言包

在转换包含中文的PDF文档成swf时,常常会因为缺少所需的字体而出现乱码,或者干脆就没有文字,就需要使用到xpdf的字体库。
到 http://www.foolabs.com/xpdf/download.html 下载xpdf-chinese-simplified.tar.gz,解压到/usr/local下,编辑add-to-xpdfrc文件,如下:

# vi /usr/local/xpdf-chinese-simplified/add-to-xpdfrc
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode    Adobe-GB1       /usr/local/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap      ISO-2022-CN     /usr/local/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap      EUC-CN          /usr/local/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap      GBK             /usr/local/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir         Adobe-GB1       /usr/local/xpdf-chinese-simplified/CMap
toUnicodeDir                    /usr/local/xpdf-chinese-simplified/CMap

fontDir /usr/share/fonts/win
displayCIDFontTT    Adobe-GB1    /usr/share/fonts/win/SIMHEI.ttf
displayCIDFontTT    Adobe-GB1    /usr/local/xpdf-chinese-simplified/CMap/gbsn00lp.ttf
displayCIDFontTT    Adobe-GB1    /usr/local/xpdf-chinese-simplified/CMap/gkai00mp.ttf

可以使用xftp将常用的中文字体上传到/usr/share/fonts/win,如宋体、微软雅黑、黑体、楷体等。另外去 网上下载 gkai00mp.ttf、gbsn00lp.ttf简体中文放到上面正确的路径下,参考http://shitouququ.blog.51cto.com/24569/1252930

转换时加上-s languagedir=/usr/local/xpdf-chinese-simplified/来加载语言包路径。

另外据同事说在 windows 平台安装和转换效果会好一点,没有验证。

时间: 2024-10-26 23:59:49

doc/jpg等文件在线浏览解决方案搭建的相关文章

如何实现在页面总嵌入pdf文件在线浏览,就好比嵌入ASPNetFlash控件可以浏览FLASH文件一样

问题描述 最好还能实现客户端没装PDF阅读软件的前提下也能在线浏览 解决方案 解决方案二:有一种flash可以实现,就像百度文库,豆丁一样去找找代码解决方案三:稳定和易用的只有两个控件,需要可以到我博客看看解决方案四: 解决方案五:我记得有人问过楼主百度google有答案以前有人问过 解决方案六:太多了楼主自己再找找很多解决方案七:我說那個,是企業級別的,呵呵呵解决方案八:--如果你有200分我倒是可以发个DEMO给你解决方案九:该回复于2012-06-29 08:54:37被版主删除解决方案十

ie10-如何实现在WIN8 RT上使用IE10 在线浏览PDF文件

问题描述 如何实现在WIN8 RT上使用IE10 在线浏览PDF文件 我有一个WEB项目,用户使用的是surface rt的ie10,其中需要实现的一个功能是要在线浏览pdf文件.由于metro的ie10不支持插件,每次点击pdf都要提示下载,因此无法实现这个功能. 网上能查到的方法是将pdf转化为swf,然后通过flexpaper查看,这个方法虽然能实现,但是在iis上发布以后,pdf2swf.exe的运行需要使用管理员权限才能正常使用,这点我们的网络管理不能允许,这个方法就不能用了. 另外一

求助!网页在线浏览功能,播放大点的CAD文件会导致adobe flash崩溃!

问题描述 我现在要做一个在线浏览CAD文件的功能,我先将CAD文件转换成pdf文件,然后将pdf文件转换成swf文件.最后用flexpaper播放.如果是几百K的cad文件可以正常播放,但是大点的cad文件则会导致adobeflash崩溃,求指点!先谢谢!CAD->PDF命令参数:Stringcommand=cadConvertToolsPath+"\AcmeCADConverter.exe/r/e/ls/p1/f104/w1200/h800/a-2/bookmark/hide1/pwpe

net 如何实现在线浏览office文件

问题描述 net如何实现在线浏览office文件 解决方案 解决方案二:直接用或者下载没.net什么事解决方案三:officewebapp解决方案四:把word转换html在程序上浏览

学习Java模拟实现百度文档在线浏览_java

这个思路是我参考网上而来,代码是我实现. 采用Apache下面的OpenOffice将资源文件转化为pdf文件,然后将pdf文件转化为swf文件,用FlexPaper浏览. ok, A.下载OpenOffice (转换资源文件) B.下载JodConverter(调用OpenOffice) C.下载Swftools(Pdf2Swf) D.下载 FlexPaper(浏览swf文件) 下载之后,先别急安装,请看完这篇博文 1.先看我们的MyEclipse工程结构 2.将我们下载下来的jodconve

Java实现资源的在线浏览

问题描述 Java实现资源的在线浏览 我要用Java语言开发一套资源共享的系统,用到SSH整合.在里面实现资源(视频.PPT.Word等)的上传.下载以及在线浏览.在文件内容的在线浏览这块不知道要怎么实现,还望有过这方面经验的前辈们指教,谢谢了. 解决方案 这一块确实有点麻烦,如果是你的文件是txt,pdf等文本内容还好,如果是world,ecxle就麻烦了.如果说的是视频文件的话,建议你在上传时进行转码操作,转成flv格式,然后利用浏览器的flash播放器进行播放.

求助!pdf在线浏览思路。

问题描述 现在要做过pdf在线浏览的功能,不能转成swf文件,在网页中查看pdf文件,而且客户端没有adobereader工具.客户不接受在客户端安装工具,纠结啊!求大神指点!! 解决方案 解决方案二:没做过的也求帮顶..解决方案三:求指点,思路或者方案都行.解决方案四: 解决方案五:pdf在线阅读插件,无需本地任何资源.解决方案六:引用4楼baohuan_love的回复: pdf在线阅读插件,无需本地任何资源. 怎么使用啊??IE好像打开没用吧

Java 实现在线浏览pdf文档(如豆丁网www.docin.com)

问题描述 Java如何实现在线浏览pdf文档啊(如豆丁网www.docin.com),那位做过啊谢谢 解决方案 解决方案二:浏览器应该带的有pdf插件,只要把pdf文件地址给浏览器,浏览器就能呈现吧.解决方案三:那个是Flash吧~百度文库,你找个文章右击看看!解决方案四:需求就是上传一个文件以后通过flashpaper转成pdf,然后在线浏览,就是和百度文库和豆丁网一样的功能解决方案五:等待高手...解决方案六:这个不难,主要是用:C:\WINDOWS\system32\cmd.exe调用C:

java上传doc和Excel文件怎样去验证文件内容以及如何做安全防范

问题描述 java上传doc和Excel文件怎样去验证文件内容以及如何做安全防范 我用java做了一个文件上传功能 要求只能上传doc 和 excel 文件,验证了文件名后缀以及文件头,但是这种防范都可以绕过 !- 有么有更好的验证方法 求大神们指教 !- 小弟在此拜谢 解决方案 把doc,excel等用文本打开,然后检查一些文件头等信息. 解决方案二: 除非你用poi这样的库全部解析下.