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 平台安装和转换效果会好一点,没有验证。

目录
相关文章
|
JavaScript 前端开发 HTML5
Web页面或URL转换为PDF的在线工具
在线工具列表能帮助你任何web页面或URL转换为PDF格式。你不需要下载任何软件。只是拷贝和粘贴您希望下载PDF格式的URL 以下网站 1. PDFMyURL.com 一个流行的Web页面的URL PDF转换器。
1314 0
|
3月前
|
XML 存储 C#
自己动手做一个批量doc转换为docx文件的小工具
自己动手做一个批量doc转换为docx文件的小工具
66 0
|
4月前
|
Web App开发 前端开发 安全
2024年新一代WebOffice内嵌网页组件,Web网页在线编辑Word/Excel/PPT
WebOffice控件面临兼容性、用户体验和维护难题。随着浏览器更新,依赖插件的技术不再适用,如Chrome不再支持NPAPI和PPAPI。产品普遍不支持多版本Office并存,定制能力弱,升级复杂。猿大师办公助手提供了解决方案,它兼容多种浏览器,包括最新版和国产浏览器,不依赖插件,支持文档对比,具有丰富的功能和接口,兼容多种Office版本,允许源码级定制,提供终身技术支持,并实现静默在线升级。适用于多种行业和操作系统。
217 7
|
Web App开发 存储 C#
C# 10分钟入门基于WebOffice实现在线编辑文档,实时保存到服务器(所有office,兼容WPS)
C# 10分钟入门基于WebOffice实现在线编辑文档,实时保存到服务器(所有office,兼容WPS)
|
6月前
|
搜索推荐 定位技术 数据安全/隐私保护
方便、免费的PDF在线处理网站汇总:PDF合并、文字编辑、页面提取与删除、格式转换…
方便、免费的PDF在线处理网站汇总:PDF合并、文字编辑、页面提取与删除、格式转换…
135 1
|
数据采集 存储 监控
C++下载器程序:如何使用cpprestsdk库下载www.ebay.com图片
本文介绍了如何使用C++语言和cpprestsdk库编写一个下载器程序,该程序可以从www.ebay.com网站上下载图片,并保存到本地文件夹中。为了避免被网站屏蔽,我们使用了亿牛云爬虫代理服务提供的代理IP地址,以及多线程技术提高下载效率。
114 1
C++下载器程序:如何使用cpprestsdk库下载www.ebay.com图片
|
前端开发
前端实现在线预览文档(pdf、doc文件)
前端实现在线预览文档(pdf、doc文件)
|
搜索推荐 API Apache
阿里云网盘和相册服务目前没有提供针对自实现的文档内容搜索功能
阿里云网盘和相册服务目前没有提供针对自实现的文档内容搜索功能
116 1
|
运维 Kubernetes Cloud Native
在 Rainbond 上使用在线知识库系统zyplayer-doc
zyplayer-doc 是一款适合企业和个人使用的WIKI知识库管理工具,提供在线化的知识库管理功能,专为私有化部署而设计,最大程度上保证企业或个人的数据安全,可以完全以内网的方式来部署使用它。
|
Web App开发
谷歌 Chrome 浏览器内直接打开编辑保存 Word、Excel、PPT 文档,可离线部署!
谷歌 Chrome 经过开发团队不断优化,凭借运行界面简单,打开速度最快及扩展插件众多,Chrome 已经成为了世界上最受欢迎的浏览器。不过有一点非常可惜,由于微软 Office 不是开源程序,所以 Chrome 一直无法直接打开微软 Office 文档。
361 0
谷歌 Chrome 浏览器内直接打开编辑保存 Word、Excel、PPT 文档,可离线部署!