赞
踩
准备工作:
一.软件环境:
jdk-7u9-linux-i586.tar.gz #openoffice安装需要有jdk支持 版本号你随便定
Apache_OpenOffice_4.1.1_Linux_x86_install-rpm_en-US.tar #openoffice软件请到官网下载,我的是最新版本
二.安装部署
1.查看是否安装了JDK
rpm -qa | grep java
如有显示说明已经安装了
那就删除掉
rmp -e java
2.拷贝jdk-7u9-linux-i586.tar.gz到数据库服务器的/web/下
mv jdk-7u9-linux-i586.tar.gz /home/wwwroot/
解压
tar -zxvf jdk-7u9-linux-i586.tar.gz
3.修改环境变量
vim /etc/profile
添加下面的代码
export JAVA_HOME=/www/web/jdk1.7.0_09
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
保存退出
4.重新加载环境变量
source /etc/profile
5.验证是否成功
java -version
如果出现下面三行
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) Client VM (build 23.5-b02, mixed mode)
或者新建Test.java
class Test
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
保存
javac Test.java
java Test
运行结果如下
Hello World!
以上说明jdk没问题了。
6.安装openoffice
tar -zxvf Apache_OpenOffice_4.1.1_Linux_x86_install-rpm_en-US.tar.gz
进入里面RPMS去
ls查看
desktop-integration openoffice-en-US-calc-4.1.1-9775.i586.rpm
openoffice-4.1.1-9775.i586.rpm openoffice-en-US-draw-4.1.1-9775.i586.rpm
openoffice-base-4.1.1-9775.i586.rpm openoffice-en-US-help-4.1.1-9775.i586.rpm
openoffice-brand-base-4.1.1-9775.i586.rpm openoffice-en-US-impress-4.1.1-9775.i586.rpm
openoffice-brand-calc-4.1.1-9775.i586.rpm openoffice-en-US-math-4.1.1-9775.i586.rpm
openoffice-brand-draw-4.1.1-9775.i586.rpm openoffice-en-US-res-4.1.1-9775.i586.rpm
openoffice-brand-en-US-4.1.1-9775.i586.rpm openoffice-en-US-writer-4.1.1-9775.i586.rpm
openoffice-brand-impress-4.1.1-9775.i586.rpm openoffice-gnome-integration-4.1.1-9775.i586.rpm
openoffice-brand-math-4.1.1-9775.i586.rpm openoffice-graphicfilter-4.1.1-9775.i586.rpm
openoffice-brand-writer-4.1.1-9775.i586.rpm openoffice-images-4.1.1-9775.i586.rpm
openoffice-calc-4.1.1-9775.i586.rpm openoffice-impress-4.1.1-9775.i586.rpm
openoffice-core01-4.1.1-9775.i586.rpm openoffice-javafilter-4.1.1-9775.i586.rpm
openoffice-core02-4.1.1-9775.i586.rpm openoffice-math-4.1.1-9775.i586.rpm
openoffice-core03-4.1.1-9775.i586.rpm openoffice-ogltrans-4.1.1-9775.i586.rpm
openoffice-core04-4.1.1-9775.i586.rpm openoffice-onlineupdate-4.1.1-9775.i586.rpm
openoffice-core05-4.1.1-9775.i586.rpm openoffice-ooofonts-4.1.1-9775.i586.rpm
openoffice-core06-4.1.1-9775.i586.rpm openoffice-ooolinguistic-4.1.1-9775.i586.rpm
openoffice-core07-4.1.1-9775.i586.rpm openoffice-pyuno-4.1.1-9775.i586.rpm
openoffice-draw-4.1.1-9775.i586.rpm openoffice-ure-4.1.1-9775.i586.rpm
openoffice-en-US-4.1.1-9775.i586.rpm openoffice-writer-4.1.1-9775.i586.rpm
openoffice-en-US-base-4.1.1-9775.i586.rpm openoffice-xsltfilter-4.1.1-9775.i586.rpm
然后rpm -ivh *.rpm
很快就安装完成了
7.启动openoffice
cd /opt/openoffice4/program/
我装的是openoffice4,你自己看清楚,使用命令启动
./soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
如果出现下面
[1] 1784
再查看一下进程
[root@www program]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1560/pure-ftpd (SER
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1083/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1027/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1543/sendmail
tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN 1814/soffice.bin
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1494/mysqld
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 1576/memcached
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1523/redis-server 1
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1067/nginx
tcp 0 0 :::21 :::* LISTEN 1560/pure-ftpd (SER
tcp 0 0 :::22 :::* LISTEN 1083/sshd
tcp 0 0 ::1:631 :::* LISTEN 1027/cupsd
可以发现8100端口已经处在监听状态
三、测试文档装换
需要一个Python脚本
注意我直接放在/opt/openoffice4/program 下面建了。
命名为DocumentConvert.py
直接用了网上一个哥们的代码
- #
- # PyODConverter (Python OpenDocument Converter) v1.1 - 2009-11-14
- #
- # This script converts a document from one office format to another by
- # connecting to an OpenOffice.org instance via Python-UNO bridge.
- #
- # Copyright (C) 2008-2009 Mirko Nasato <mirko@artofsolving.com>
- # Licensed under the GNU LGPL v2.1 - http://www.gnu.org/licenses/lgpl-2.1.html
- # - or any later version.
- #
- DEFAULT_OPENOFFICE_PORT = 8100
-
- import uno
- from os.path import abspath, isfile, splitext
- from com.sun.star.beans import PropertyValue
- from com.sun.star.task import ErrorCodeIOException
- from com.sun.star.connection import NoConnectException
-
- FAMILY_TEXT = "Text"
- FAMILY_WEB = "Web"
- FAMILY_SPREADSHEET = "Spreadsheet"
- FAMILY_PRESENTATION = "Presentation"
- FAMILY_DRAWING = "Drawing"
-
- #---------------------#
- # Configuration Start #
- #---------------------#
-
- # see http://wiki.services.openoffice.org/wiki/Framework/Article/Filter
-
- # most formats are auto-detected; only those requiring options are defined here
- IMPORT_FILTER_MAP = {
- "txt": {
- "FilterName": "Text (encoded)",
- "FilterOptions": "utf8"
- },
- "csv": {
- "FilterName": "Text - txt - csv (StarCalc)",
- "FilterOptions": "44,34,0"
- }
- }
-
- EXPORT_FILTER_MAP = {
- "pdf": {
- FAMILY_TEXT: { "FilterName": "writer_pdf_Export" },
- FAMILY_WEB: { "FilterName": "writer_web_pdf_Export" },
- FAMILY_SPREADSHEET: { "FilterName": "calc_pdf_Export" },
- FAMILY_PRESENTATION: { "FilterName": "impress_pdf_Export" },
- FAMILY_DRAWING: { "FilterName": "draw_pdf_Export" }
- },
- "html": {
- FAMILY_TEXT: { "FilterName": "HTML (StarWriter)" },
- FAMILY_SPREADSHEET: { "FilterName": "HTML (StarCalc)" },
- FAMILY_PRESENTATION: { "FilterName": "impress_html_Export" }
- },
- "odt": {
- FAMILY_TEXT: { "FilterName": "writer8" },
- FAMILY_WEB: { "FilterName": "writerweb8_writer" }
- },
- "doc": {
- FAMILY_TEXT: { "FilterName": "MS Word 97" }
- },
- "rtf": {
- FAMILY_TEXT: { "FilterName": "Rich Text Format" }
- },
- "txt": {
- FAMILY_TEXT: {
- "FilterName": "Text",
- "FilterOptions": "utf8"
- }
- },
- "ods": {
- FAMILY_SPREADSHEET: { "FilterName": "calc8" }
- },
- "xls": {
- FAMILY_SPREADSHEET: { "FilterName": "MS Excel 97" }
- },
- "csv": {
- FAMILY_SPREADSHEET: {
- "FilterName": "Text - txt - csv (StarCalc)",
- "FilterOptions": "44,34,0"
- }
- },
- "odp": {
- FAMILY_PRESENTATION: { "FilterName": "impress8" }
- },
- "ppt": {
- FAMILY_PRESENTATION: { "FilterName": "MS PowerPoint 97" }
- },
- "swf": {
- FAMILY_DRAWING: { "FilterName": "draw_flash_Export" },
- FAMILY_PRESENTATION: { "FilterName": "impress_flash_Export" }
- }
- }
-
- PAGE_STYLE_OVERRIDE_PROPERTIES = {
- FAMILY_SPREADSHEET: {
- #--- Scale options: uncomment 1 of the 3 ---
- # a) 'Reduce / enlarge printout': 'Scaling factor'
- "PageScale": 100,
- # b) 'Fit print range(s) to width / height': 'Width in pages' and 'Height in pages'
- #"ScaleToPagesX": 1, "ScaleToPagesY": 1000,
- # c) 'Fit print range(s) on number of pages': 'Fit print range(s) on number of pages'
- #"ScaleToPages": 1,
- "PrintGrid": False
- }
- }
-
- #-------------------#
- # Configuration End #
- #-------------------#
-
- class DocumentConversionException(Exception):
-
- def __init__(self, message):
- self.message = message
-
- def __str__(self):
- return self.message
-
-
- class DocumentConverter:
-
- def __init__(self, port=DEFAULT_OPENOFFICE_PORT):
- localContext = uno.getComponentContext()
- resolver = localContext.ServiceManager.createInstanceWithContext("com.sun.star.bridge.UnoUrlResolver", localContext)
- try:
- context = resolver.resolve("uno:socket,host=localhost,port=%s;urp;StarOffice.ComponentContext" % port)
- except NoConnectException:
- raise DocumentConversionException, "failed to connect to OpenOffice.org on port %s" % port
- self.desktop = context.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", context)
-
- def convert(self, inputFile, outputFile):
-
- inputUrl = self._toFileUrl(inputFile)
- outputUrl = self._toFileUrl(outputFile)
-
- loadProperties = { "Hidden": True }
- inputExt = self._getFileExt(inputFile)
- if IMPORT_FILTER_MAP.has_key(inputExt):
- loadProperties.update(IMPORT_FILTER_MAP[inputExt])
-
- document = self.desktop.loadComponentFromURL(inputUrl, "_blank", 0, self._toProperties(loadProperties))
- try:
- document.refresh()
- except AttributeError:
- pass
-
- family = self._detectFamily(document)
- self._overridePageStyleProperties(document, family)
-
- outputExt = self._getFileExt(outputFile)
- storeProperties = self._getStoreProperties(document, outputExt)
-
- try:
- document.storeToURL(outputUrl, self._toProperties(storeProperties))
- finally:
- document.close(True)
-
- def _overridePageStyleProperties(self, document, family):
- if PAGE_STYLE_OVERRIDE_PROPERTIES.has_key(family):
- properties = PAGE_STYLE_OVERRIDE_PROPERTIES[family]
- pageStyles = document.getStyleFamilies().getByName('PageStyles')
- for styleName in pageStyles.getElementNames():
- pageStyle = pageStyles.getByName(styleName)
- for name, value in properties.items():
- pageStyle.setPropertyValue(name, value)
-
- def _getStoreProperties(self, document, outputExt):
- family = self._detectFamily(document)
- try:
- propertiesByFamily = EXPORT_FILTER_MAP[outputExt]
- except KeyError:
- raise DocumentConversionException, "unknown output format: '%s'" % outputExt
- try:
- return propertiesByFamily[family]
- except KeyError:
- raise DocumentConversionException, "unsupported conversion: from '%s' to '%s'" % (family, outputExt)
-
- def _detectFamily(self, document):
- if document.supportsService("com.sun.star.text.WebDocument"):
- return FAMILY_WEB
- if document.supportsService("com.sun.star.text.GenericTextDocument"):
- # must be TextDocument or GlobalDocument
- return FAMILY_TEXT
- if document.supportsService("com.sun.star.sheet.SpreadsheetDocument"):
- return FAMILY_SPREADSHEET
- if document.supportsService("com.sun.star.presentation.PresentationDocument"):
- return FAMILY_PRESENTATION
- if document.supportsService("com.sun.star.drawing.DrawingDocument"):
- return FAMILY_DRAWING
- raise DocumentConversionException, "unknown document family: %s" % document
-
- def _getFileExt(self, path):
- ext = splitext(path)[1]
- if ext is not None:
- return ext[1:].lower()
-
- def _toFileUrl(self, path):
- return uno.systemPathToFileUrl(abspath(path))
-
- def _toProperties(self, dict):
- props = []
- for key in dict:
- prop = PropertyValue()
- prop.Name = key
- prop.Value = dict[key]
- props.append(prop)
- return tuple(props)
-
-
- if __name__ == "__main__":
- from sys import argv, exit
-
- if len(argv) < 3:
- print "USAGE: python %s <input-file> <output-file>" % argv[0]
- exit(255)
- if not isfile(argv[1]):
- print "no such input file: %s" % argv[1]
- exit(1)
-
- try:
- converter = DocumentConverter()
- converter.convert(argv[1], argv[2])
- except DocumentConversionException, exception:
- print "ERROR! " + str(exception)
- exit(1)
- except ErrorCodeIOException, exception:
- print "ERROR! ErrorCodeIOException %d" % exception.ErrCode
- exit(1)
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
ok我们放一个doc文档转一下试试
[root@www program]# python DocumentConvert.py 1.doc 1.html
[root@www program]#
没问题
转pdf试试呢
[root@www program]# python DocumentConvert.py 1.doc 1.pdf
[root@www program]#
没问题。一切OK
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。