- 浏览: 279987 次
- 性别:
- 来自: 厦门
文章分类
最新评论
-
chenxliang:
2016年10月26、27日,上海浦东,Postgres中国用 ...
用JDBC连接Postgres(Postgres学习笔记1) -
cuiran:
不错,讲的很详细。
web.xml 中的listener、 filter、servlet 加载顺序及其详解 -
i_am_birdman:
PostgreSQL的管理启动服务pg_ctl -D /pat ...
PostgreSql 数据库备份恢复 删除 建立 -
i_am_birdman:
songshuang 写道现在觉悟也不晚!加油!
加油呵呵
人生规划啊 -
songshuang:
现在觉悟也不晚!加油!
人生规划啊
项目需要一个模块:将一些 资料 按照指定的格式写入doc文档,然后提供下载。 下载模块已经初步完成,如何实现将资料写入doc文档? OpenOffice java api: 简单的说就是利用java程序可以操作OpenOffice的所有功能,比如创建doc文档,插入文字,设置文字格式等等。 1. OpenOffice 给程序员提供了一个叫UNO (UniversalNetwork Objects)的组件技术.我理解的UNO: OpenOffice 类似于web程序中的服务器,程序员写的代码类似于客户端,利用UNO提供的接口和服务去完成对OpenOffice文档的操作。所以写程序首先要搭建 UNO环境: 1. 下载 OpenOffice: http://download.openoffice.org/index.html. (ps :一定要安装 Software Development Kit (SDK) ) 2.复制UNO提供的jar包: unoil.jar, java_uno.jar, juh.jar, jurt.jar, ridl.jar, unoloader.jar. (ps: 安装了SDK之后在文件夹找)到自己的工程中,引入它们。 3. 下载文档:DevelopersGuide.pdf. http://api.openoffice.org/docs/DevelopersGuide/DevelopersGuide.pdf 4. 安装了SDK后,重新启动一下机器,然后就可以按照 DevelopersGuide 来学习 UNO 编程了。 5. 需要ava 环境。 补充: 安装了SDK后, java, c++帮助文档,样例程序,其他关于sdk的信息 都放在本地openOffice安装路径一个叫sdk目录下面,enjoy it ! 总结一下已经实现的功能和碰到的问题汇总: 1. 首先要得到远程office组件的上下文.通过: com.sun.star.uno.XComponentContext xContext = com.sun.star.comp.helper.Bootstrap.bootstrap(); 得到,如果OpenOffice安装路径不是在工程的路径下面(我自己猜的), 就会报: com.sun.star.comp.helper.BootstrapException: no office executable found! 解决办法: 黑其源代码, 看了源代码就会发现其实OpenOffice是在寻找本地的soffice的shell文件,所以弄个变量来保存soffice在系统中的路径,重新写一 个Bootstrap就可以了。详细请参照:论坛 。 2. 得到 XMultiComponentFactory (ComponentFactory 工厂) com.sun.star.lang.XMultiComponentFactory xMCF = xContext.getServiceManager(); 3. 得到各种组件可以通过下面代码: // docType 是 与 soffice 同目录下面的OpenOffice的其他shell文件,swrite等等 protected XComponent newDocComponent(String docType) 4.得到 XTextDocument XComponent xEmptyWriterComponent = newDocComponent("swriter"); XTextDocument mxDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, 5. 得到一个文档的引用 XText mxDocText = mxDoc.getText(); 6. 得到文档的属性列表 XPropertySet mxDocProps = (XPropertySet) UnoRuntime.queryInterface( 7. 建立光标,用来插入新的内容。 XTextCursor mxDocCursor = mxDocText.createTextCursor(); XSentenceCursor xSentenceCursor = (XSentenceCursor) UnoRuntime 8.得到光标属性列表 XPropertySet xCursorProps = (XPropertySet) UnoRuntime .queryInterface(XPropertySet.class, mxDocCursor); 9.设置插入文字格式 xCursorProps.setPropertyValue("CharFontName", "宋体"); 10.在该光标处插入信息 mxDocText.insertString(xSentenceCursor, “Hello World", true); 11. 保存的关键代码 protected void storeDocComponent(XComponent xDoc, String storeUrl) 未解决问题: 中文不能正确的设置字体格式,段落格式。 2010-9-15 解决办法:http://user.services.openoffice.org/en/forum/viewtopic.php?f=20&t=34092
throws java.lang.Exception {
String loadUrl = "private:factory/" + docType;
mxRemoteServiceManager = this.getRemoteServiceManager();
Object desktop = mxRemoteServiceManager.createInstanceWithContext(
"com.sun.star.frame.Desktop", mxRemoteContext);
XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime
.queryInterface(XComponentLoader.class, desktop);
PropertyValue[] loadProps = new PropertyValue[0];
return xComponentLoader.loadComponentFromURL(loadUrl, "_blank", 0,
loadProps);
}
xEmptyWriterComponent);
XPropertySet.class, mxDoc);
.queryInterface(XSentenceCursor.class, mxDocCursor);
XWordCursor xWordCursor = (XWordCursor) UnoRuntime.queryInterface(
XWordCursor.class, mxDocCursor);
xCursorProps.setPropertyValue("CharWeight", new Float(FontWeight.BOLD));
xCursorProps.setPropertyValue("CharHeight", new Float(10.5));
// 居中显示
xCursorProps.setPropertyValue("ParaAdjust", com.sun.star.style.ParagraphAdjust.CENTER);
throws java.lang.Exception {
XStorable xStorable = (XStorable) UnoRuntime.queryInterface(
XStorable.class, xDoc);
PropertyValue[] storeProps = new PropertyValue[1];
storeProps[0] = new PropertyValue();
storeProps[0].Name = "FilterName";
storeProps[0].Value = "MS Word 97";
openOfficeJavaLogger.debug("... store \"" + xDoc.toString() + "\" to \"" + storeUrl
+ "\".");
xStorable.storeAsURL(storeUrl, storeProps);
}
发表评论
-
linux的.bash_history
2013-02-23 15:52 13408今天看到一个人写的文章,说通过.bash_history来获取 ... -
shell 的 && 和 ||
2013-02-18 18:15 1034Shell && 和 || shell 在执 ... -
在网卡上绑定多个ip
2012-05-11 09:36 902如果要在eth0网卡设备上添加两个lP别名192.168.8. ... -
echo -e
2012-03-10 10:09 970[Gogo_yueyue@ShadowFiend ~] ... -
SSH无密码自动登录
2012-03-03 11:41 1006[root@ShadowFiend Gogo_yu ... -
ip端口请求转发(dnat)
2012-02-20 22:59 2466[福建]Mr.G(51061358) 21:26:14 有个 ... -
ulimit
2012-02-17 11:47 983通过 ulimit 改善系统性能[url] http://ww ... -
linux tree 命令
2012-02-17 10:57 1474http://www.centerkey.com/tree/上 ... -
centos64位安装Adobe Flash Player
2012-01-17 21:19 1135从ADOBE网站上下载了个RPM (http://get.ad ... -
linux 防火墙 终端修改
2011-11-30 10:17 1198之前一直在图形用户界面修改的防火墙端口。这次因为某台服务器没有 ... -
SQLite入门与分析(一)---简介
2011-10-09 11:07 845写在前面:出于项目 ... -
/linux/null
2011-09-23 14:58 938/dev/null 2>&1 详解 ... -
R,Rserve安装
2011-08-15 09:50 2231统计计算引擎用R做。 R的安装: ... -
Linux服务器性能评估与优化(没事多看看)
2011-07-25 09:40 705原文地址:http://www.itlearner.com/a ... -
删除Openoffice.org
2011-07-08 11:06 1014这个问题前后困扰我快半个月了,你妹的,Openoffice问题 ... -
linux上ln命令详细说明
2011-06-29 20:56 1281ln是linux中又一个非常重 ... -
dia 安装
2011-05-13 14:35 1647Configuration: Source code ... -
linux root 用户vi颜色 普通用户vi有颜色?--转
2011-05-11 19:56 2214vi是没有颜色的,vim是有颜色的。可是系统中没有安装vim。 ... -
wordpress安装过程
2011-05-10 20:27 2103安装前提:PHP ,Apache ,Mysql都已经安装。其实 ... -
./configure 时提示权限不足
2011-05-09 13:53 1397真是悲剧。。 chomd 777 configure ...
相关推荐
Apache OpenOffice API 不仅可以与 Apache OpenOffice Basic 一起使用,而且还可以与其他编程语言(如 Java 和 C++)一起使用。这是通过一种称为通用网络对象 (Universal Network Objects, UNO) 的技术实现的,该...
OpenOffice API 的核心是UNO(Universal Network Objects)框架,它是一种跨平台的接口技术,支持多种编程语言,如Java、C++和Python等。通过UNO接口,开发者可以访问OpenOffice的全部组件和服务,实现诸如读取、...
Java作为一种广泛使用的编程语言,提供了多种方式来实现文件转换,其中之一就是利用OpenOffice API。本篇文章将深入探讨如何利用Java结合OpenOffice库将各种文档类型转换为PDF格式。 首先,OpenOffice是一款开源的...
OpenOffice4提供了一个称为UNO(Universal Network Objects)的接口,允许外部应用程序,如Java程序,通过API与OpenOffice通信。然而,当在Linux CentOS环境下通过Java调用OpenOffice4时,可能会遇到各种错误,比如...
1. unoil-3.0.1.jar:Uno接口库,它是OpenOffice与Java之间通信的桥梁,提供了一种方式让Java应用程序能够控制OpenOffice的进程。 2. xstream-1.3.1.jar:XStream是一个用于Java对象到XML和XML到Java对象序列化的库...
总结起来,"java OpenOffice wordExcel转换PDF"涉及的关键知识点包括Java编程、OpenOffice UNO接口、JODConverter库的使用、OpenOffice/LibreOffice的安装与配置,以及文档转换中的问题排查和性能优化。通过理解和...
1. OpenOffice API:OpenOffice的API分为Java和UNO(Universal Network Objects)两种,其中UNO是跨语言的接口,支持多种编程语言,如C++、Python、Java等。API提供了对OpenOffice组件的全面访问,包括创建、读取、...
4. **Java UNO Bridge**: Java UNO Bridge是OpenOffice提供的一个组件,它使得Java应用程序可以使用UNO(Universal Network Objects)接口与OpenOffice的内部对象进行通信,从而实现文件转换等功能。 5. **转换过程...
JODConverter是一个Java接口,它使用 Uno 库与OpenOffice进行通信,从而执行文档转换任务。 以下是使用OpenOffice和JODConverter实现PDF在线预览的基本步骤: 1. 安装OpenOffice:在服务器上安装Apache OpenOffice...
标题"openoffice完整jar包"指的是OpenOffice的相关Java库文件,通常是一系列.jar文件的集合,这些文件包含了OpenOffice的API,允许开发者在Java应用程序中调用OpenOffice的功能。 描述中提到"导入这些包,安装好...
开始阶段需要了解的文件、安装集和配置步骤,以及在StarSuite中如何开放Java和使用Java UNO类文件,还包括如何让Office进行侦听和将API参考加入到集成开发环境(IDE)中的说明。 文档接着深入介绍如何在StarSuite中...
5. **juh-5.4.2.jar**:Java UNO Helper库,包含了处理UNO接口和异常的辅助类,是使用OpenOffice API的基础。 6. **jodconverter-core-3.0-beta-4.jar** 和 **jodconverter-core-4.1.0.jar**:JODConverter是一个...
本篇将重点讲解如何利用OpenOffice API在Java环境中将Word文档转换为PDF文件。 OpenOffice是一个开源的办公套件,它提供了一个称为UNO(Universal Network Objects)的接口,允许开发者通过编程方式与OpenOffice...
RIDL解析器将接口定义语言(IDL)文件转换为Java源代码,这些源代码定义了Java应用程序如何调用OpenOffice的Uno接口。 4. **unoil.jar**:Uno Interface Library (UNOIL) 提供了Uno接口的实现,它是Uno接口的一部分,...
OpenOffice的Java API,也称为UNO(Universal Network Objects),提供了一个接口来访问OpenOffice的所有功能,包括文件转换。 2. **Word转HTML** 将Word文档转换为HTML时,我们需要利用API读取Word文件的内容,并...
1. **JavaBridge**:由于OpenOffice的API主要是基于Java的,C#开发者通常会使用JavaBridge这个.NET库来作为桥梁,使得C#代码能够调用Java接口。JavaBridge提供了一个.NET平台下的Java运行环境,使得C#代码可以无缝地...
无拘无束LibreOffice的UNO API简单易懂-不错的Office访问权限NOA-libre是围绕LibreOffice UNO API的面向对象的轻量级Java包装器,可提供许多UNO接口的更高层次的抽象。 它是Ubion的NOA(不错的Office Access)的分支...
- **Java API**:OpenOffice提供了Java接口,可以通过Java编程语言来控制OpenOffice的功能,包括文件转换。你需要引入`com.sun.star.comp.helper.Bootstrap`等库,然后启动服务,获取`...
它包括Java和C++的API,以及一些示例项目,如`hello.py`和`hello.sh`,这些都是用于演示如何启动和操作OpenOffice组件的基本脚本。 2. **Python集成**:`hello.py`是一个Python脚本,展示了如何通过Python的UNO...