openoffice to pdf to swf
- 格式:docx
- 大小:39.03 KB
- 文档页数:4
Java利⽤openoffice将doc、docx转为pdf实例代码本⽂研究的主要是Java编程利⽤openoffice将doc、docx转为pdf的实现代码,具体如下。
1. 需要⽤的软件OpenOffice , JodConverter2.启动OpenOffice的服务我到⽹上查如何利⽤OpenOffice进⾏转码的时候,都是需要先⽤cmd启动⼀个soffice服务,启动的命令是:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;"。
但是实际上,对于我的项⽬,进⾏转码只是偶尔进⾏,然⽽当OpenOffice的转码服务启动以后,该进程(进程名称是soffice.exe)会⼀直存在,并且⼤约占100M的内存,感觉⾮常浪费。
于是我就想了⼀个办法,可以将执⾏该服务的命令直接在Java代码⾥⾯调⽤,然后当转码完成的时候,直接⼲掉这个进程。
在后⾯的JAVA代码⾥⾯会有解释。
所以,实际上,这第2步可以直接跳过3.将JodConverter相关的jar包添加到项⽬中将JodConverter解压缩以后,把lib下⾯的jar包全部添加到项⽬中注意:安装openoffice4. 下⾯就是重点喽,详见Java代码解析package cn;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import com.artofsolving.jodconverter.DocumentConverter;import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;/*** office转化为pdf* pdf转化为swf⽂件* @author Administrator**/public class Converter {private static String openOfficePath = "E:\\安装软件\\openoffice\\date";//openoffice软件的安装路径/*** 将Office⽂档转换为PDF. 运⾏该函数需要⽤到OpenOffice和jodconverter-2.2.2* <pre>* ⽅法⽰例:* String sourcePath = "F:\\office\\source.doc";* String destFile = "F:\\pdf\\dest.pdf";* Converter.office2PDF(sourcePath, destFile);* </pre>** @param sourceFile* 源⽂件, 绝对路径. 可以是Office2003-2007全部格式的⽂档, Office2010的没测试. 包括.doc,* .docx, .xls, .xlsx, .ppt, .pptx等. ⽰例: F:\\office\\source.doc* @param destFile* ⽬标⽂件. 绝对路径. ⽰例: F:\\pdf\\dest.pdf* @return 操作成功与否的提⽰信息. 如果返回 -1, 表⽰找不到源⽂件, 或url.properties配置错误; 如果返回 0,* 则表⽰操作成功; 返回1, 则表⽰转换失败*/public static int office2PDF(String sourceFile, String destFile) {try {File inputFile = new File(sourceFile);if (!inputFile.exists()) {return -1;// 找不到源⽂件, 则返回-1}// 如果⽬标路径不存在, 则新建该路径File outputFile = new File(destFile);if (!outputFile.getParentFile().exists()) {outputFile.getParentFile().mkdirs();}String OpenOffice_HOME = openOfficePath;//这⾥是OpenOffice的安装⽬录// 如果从⽂件中读取的URL地址最后⼀个字符不是 '\',则添加'\'if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') {OpenOffice_HOME += "\\";}// 启动OpenOffice的服务String command = OpenOffice_HOME+ "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";Process pro = Runtime.getRuntime().exec(command);// connect to an instance running on port 8100OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);connection.connect();// convertDocumentConverter converter = new OpenOfficeDocumentConverter(connection);converter.convert(inputFile, outputFile);// close the connectionconnection.disconnect();// 关闭OpenOffice服务的进程pro.destroy();return 0;}catch (FileNotFoundException e) {e.printStackTrace();return -1;}catch (IOException e) {e.printStackTrace();}return 1;}public static void main(String []args) throws Exception {String sourcePath = "C:\\Users\\Administrator\\Desktop\\1\\分组情况⼀览表.xls";String destFile = "C:\\Users\\Administrator\\Desktop\\1\\dest.pdf";int flag = Converter.office2PDF(sourcePath, destFile);if (flag == 1) {System.out.println("转化失败");} else if(flag == 0){System.out.println("转化成功");} else {System.out.println("找不到源⽂件, 或url.properties配置错误");}}}总结以上就是本⽂关于Java利⽤openoffice将doc、docx转为pdf实例代码的全部内容,希望对⼤家有所帮助。
OpenOffice Writer文件转换PDF文件操作指引
首先在您的电脑(开始-程序 3.0)或桌面图标打开OpenOffice Writer软件. 打开您需转换的文件或新建新文件. 见下图(一). 用鼠标单击OpenOffice Writer 下拉菜单'文件'处. 见下图(二).
(图一)
用鼠标单击文件下拉菜单中的'输出成PDF' 功能菜单. 见下图(三).
( 图二 )
用鼠标单击PDF选项表单中的'导出'功能按钮. 见下图(四).
图( 三 )
在导出对话框中输入您导出的PDF文件名称及文件扩展名(如没有选中单选框'自动加上文档扩展名'则需手动输入文件扩展名PDF). 单击保存按钮后生成新的'PDF'文件.
图( 四 )
如有不明, 烦请联络工业园IT部,内线626或627. 谢谢!
2009年09月28号.
============================= 完成 =====================================。
将OpenOffice文档转换为PDF文件:使用Java进行操作在处理文档转换的过程中,我们常常需要将OpenOffice文档(如.odt,.ods等)转换为PDF格式。
尽管OpenOffice本身提供了命令行工具来实现这一功能,但在Java应用程序中直接使用这些工具可能并不是最理想的解决方案。
幸运的是,有一些Java库可以帮助我们完成这个任务。
Apache POI和PDFBox是两个非常强大的库,它们可以帮助我们处理各种文档格式。
然而,为了将OpenOffice文档转换为PDF,我们需要一个能够与OpenOffice交互的Java库。
这就是为什么我们需要用到unoconv。
unoconv是一个命令行工具,它可以用来将OpenOffice文档转换为其他格式,包括PDF。
unoconv有一个Java库接口,使我们能够在Java应用程序中直接使用它。
以下是如何在Java中使用unoconv将OpenOffice文档转换为PDF的示例:首先,你需要添加unoconv的依赖到你的项目中。
如果你使用Maven,你可以添加以下依赖到你的pom.xml文件中:然后,你可以使用以下代码将OpenOffice文档转换为PDF:这段代码首先创建一个Conv对象,然后使用Args对象设置转换参数。
在这个例子中,我们设置参数为将文件转换为PDF格式。
然后,我们调用convert方法来执行转换。
最后,我们关闭Conv对象以释放资源。
请注意,为了使这段代码正常工作,你的系统需要安装LibreOffice或OpenOffice,并且unoconv需要能够找到它们。
此外,你可能需要在你的系统路径中添加unoconv的路径。
知识库中文档在线预览功能的实现1 文档预览方案知识库中文档以附件的形式上传后,以 flash 的形式在网页上展示。
文档需要先转化为 pdf ,再从 pdf 转化为 flash 。
本文采用 JODConverter 和 OpenOffice 将 Txt、Word Excel、PPT格式的文件转换为 PDF文件,再通过 SWFTools中的PDF2SW工具将PDF 文件转换为SWF文件,最终在页面显示,实现在线预览功能。
OpenOffice 是一套跨平台的办公室软件套件,能在 Windows、Linux 等操作系统上执行。
它与各个主要的办公室软件套件兼容,支持XML微软的 Word Excel、PPT文件等格式。
为了把文档转换PDF格式,需将 变成一个转换引擎,可以通过网络接口或命令行工具对文件的格式进行转换。
JODConverter 能够将 Word Excel、PPT转换 PDF SWFTools是种与Adobe Flash ( SWF文件工作的实用工具包,主要包括用于读取、编译以及生成 SWF文件的程序。
其中,P DF2SW工具可以将PDF文件转换成SWF文件。
Flex Player是一款高性能的、轻量型且极具表现力的客户端运行时播放器,能够在各种主流操作系统、浏览器上使用,使得在没有安装PDF阅读器软件的情况下浏览PDF文件成为可能。
本文采用 Java语言对其进行编程实现,具有与 Java 语言相同的跨平台性,可在不同的操作系统上运行。
2 实现步骤2.1 用 JODConverter 调用 服务转换文档为PDF格式首先,启动 OpenOffice 服务。
设定DefaultOfficeManagerConfiguration 相关参数,并得到OfficeManager 。
调用 OfficeManager 实现类的 start 方法启动服务。
主要代码如下:DefaultOfficeManagerConfigurationconfiguration =newDefaultOfficeManagerConfiguration);configuration.setOfficeHome (OPENOFFICE_HO)M;E // OP ENOFFICE_HO 为EO penO 安装目录configuration.setPortNumbers (port ); // 实例运行的端口号,默认为 8100officeManager =configuration.buildOfficeManager);officeManager.start (); // 启动服务其次,将 doc、 ppt 、 excele 、txt 转化为 pdf 文档。
java调⽤openoffice将office系列⽂档转换为PDF的⽰例⽅法前导:发过程中经常会使⽤java将office系列⽂档转换为PDF,⼀般都使⽤微软提供的openoffice+jodconverter 实现转换⽂档。
openoffice既有windows版本也有linux版。
不⽤担⼼⽣产环境是linux系统。
1、openoffice依赖jar,以maven为例:<dependency><groupId>com.artofsolving</groupId><artifactId>jodconverter</artifactId><version>2.2.1</version></dependency><dependency><groupId>org.openoffice</groupId><artifactId>jurt</artifactId><version>3.0.1</version></dependency><dependency><groupId>org.openoffice</groupId><artifactId>ridl</artifactId><version>3.0.1</version></dependency><dependency><groupId>org.openoffice</groupId><artifactId>juh</artifactId><version>3.0.1</version></dependency><dependency><groupId>org.openoffice</groupId><artifactId>unoil</artifactId><version>3.0.1</version></dependency><!--jodconverter2.2.1必须依赖slf4j-jdk14必须这个版本,不然源码中⽇志会报错,很low的⼀个问题--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-jdk14</artifactId><version>1.4.3</version></dependency>2、直接上转换代码,需要监听openoffice应⽤程序8100端⼝即可。
Office或PDF转swf需求描述实现常用office格式的文档(诸如doc、docx、ppt、pptx、xls、xlsx、wps、dps、et)、PDF文档的在线预览(类似百度文库、豆丁网),且允许用户指定文档是否能被下载。
实现方案总体思路实现方案分三步走,(1)若文档格式是PDF,则直接调用swftools工具,将其转换成swf文件;(2)若文档格式是MS Office,则先调用office 2007自带的“另存为”或“发布”功能,将文档转换成PDF,然后再调用swftools工具将PDF转换成swf 文件;若调用MS Office程序转换失败,则尝试调用WPS Office将文档转换成PDF;(3)若文档格式是WPS Office,则先调用WPS自带的“输出…”功能,将文档转换成PDF,然后再调用swftools工具将PDF转换成swf文件。
其中调用MS Office、WPS Office部分,实现方式是Java调用对应的COM 组件函数,第三方库采用的是Jacob 1.15-M4,要求在部署时,将jacob-1.15-M4-x64.dll或jacob-1.15-M4-x86.dll拷贝到System.getProperty("java.library.path")所指向的目录下。
而调用swftools将PDF转换成swf文件,有两种方式可以选择,一是直接将PDF文件生成为一个swf文件,二是将PDF文件每一页生成为对应的一个swf 文件。
在知识管理中,使用的是后者,因为若使用FlexPaper进行预览,后者的方式可以实现动态加载(即查看到哪一页的时候才去加载)。
Swftools的使用方式可参照Convert2SwfUtil.java类,或者浏览/。
具体实现Office文档转PDF上述代码是使用Jacob调用MS Office的COM组件,将word转换成pdf。
具体如何COM组件中有哪些函数,函数怎么使用,请参照MS Office的VBA文档。
整体思路如下:实现步骤: 1. DOC上传 2. DOC转成PDF 3. PDF转成SWF 4. 显示基于对Linux环境引入openoffice sdk + pdf2swf tool,分两个步骤,先利用openoffice sdk把文档统一转成pdf,然后利用pdf2swf tool把pdf转成swf实现过程要实现DOC转成PDF,在LINUX下面有Openoffice可以实现。
那么首先需要的是安装Openoffice这个东东。
1. 安装openoffice3,这个安装过程很纠结,遇到过各种问题,因为先后在几台服务器上安装过,最顺利的安装方法如下,如果遇到问题请看前面的文章有讲openoffice的安装。
1.tar zxvf OOo_3.3.0_Linux_x86-64_install-rpm-wJRE_zh-CN.tar.gz2.cd RPEM3.rpm -ivh *.rpm --nodeps –force4.安装后的默认目录是在:/opt/目录下面5.启动服务:6./opt/3/program/soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;"-nofirststartwizard &在CentOs下面会缺少黑体和宋体的,直接找到Windows下面的字体目录把黑体和宋体复制进去到目录1./opt//basis3.3/share/fonts/truetype/2.需要重启后才会生效2. 安装OpenOfficeSDK3.31.tar zxvf OOo-SDK_3.3.0_Linux_x86-64_install-rpm_en-US.tar.gz2.cd OOO330_m20_native_packed-1_en-US.9567/RPMS/3.rpm -vih *.rpm3. 安装jodconverter.2.2.2 ,安装了这个之后就已经可以实现DOC转PDF 了。
core linux openoffice 转pdf
在 Core中,将OpenOffice文档转换为PDF可以通过调用OpenOffice的命令行接口实现。
首先,需要在Linux系统上安装OpenOffice软件,并确保它能够正常运行。
然后,可以使用System.Diagnostics.Process类在Core应用程序中启动OpenOffice进程,并传递适当的命令行参数来执行文档转换。
请注意,上述代码中的sourceFilePath是OpenOffice文档的路径,destinationFilePath是转换后的PDF文件的路径。
确保将
/usr/bin/unoconv替换为实际的OpenOffice命令行工具路径。
此外,还可以根据需要调整其他参数和设置。
请注意,使用OpenOffice进行文档转换可能存在性能和兼容性问题,尤其是在处理大型或复杂的文档时。
如果需要更高效和可靠的解决方案,可以考虑使用其他第三方库或服务,如Pandoc或Adobe Acrobat等。
第一步:安装jodconverter,安装之后可以实现doc文档转成pdf。
文件下载地址为/opensource/jodconverter下载了之后直接解压,解压到/opt目录下/opt/jodconverter-2.2.2/,使用到的文件是安装包内的lib/jodconverter-cli-2.2.2.jar。
测试是否可以使用1.java -jar/opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar/home/php/1.doc /home/php/1.pdf这里提示缺少java软件包,并会提示几个安装包供。
选择我安装openjdk-6-jre-headless,命令如下:1.sudo apt_get openjdk-6-jre-headless安装之后再运行上面doc转pdf的命名,会提示openoffice进程未启动,因为JODConverter是通过OpenOffice來做转换的,所以使用前需要先安裝OpenOffice, 並且將OpenOffice的Service启动, 才可以使用. 启动命令sudo /usr/bin/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp" –nofirststartwizard如果系统安装了liboffice参考下面步骤一、下载“”的DEB安装包到中文官网上下载DEB安装包,网址:/other.html#en-US,现在(2011年6月1日)的最新版是 3.3.0,我下载的文件是“OOo_3.3.0_Linux_x86_install-deb_zh-CN.tar.gz”。
并将下载的文件复制到主目录(即当前登录用户的主目录,这样所在文件夹名字不带汉字,可防发生意外)下。
二、卸载“LibreOffice”利用“新立得”或“软件中心”卸载“LibreOffice”。
openoffice java 转pdf将OpenOffice与Java结合使用以将文档转换为PDF的过程可以分为几个步骤。
以下是一个基本的指南:1.安装OpenOffice:确保已安装OpenOffice。
可以从OpenOffice官网下载最新版本。
2.配置OpenOffice服务:OpenOffice需要作为一个服务运行,以便从Java程序中访问它。
可以通过命令行启动OpenOffice服务,如下所示:3.bash复制代码path/to/openoffice/program/soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;"这将启动OpenOffice作为服务,并监听端口8100。
3. 使用Java代码连接OpenOffice:接下来,您需要使用Java代码连接到OpenOffice服务。
这可以通过Socket连接完成。
以下是一个示例代码片段:java复制代码import java.io.File;import java.io.IOException;import .Socket;import java.util.logging.Logger;public class OpenOfficeConnection {private static final Logger LOGGER =Logger.getLogger(OpenOfficeConnection.class.getName());private static final String HOST = "127.0.0.1";private static final int PORT = 8100;private Socket connection;private StringBuilder response = new StringBuilder();public OpenOfficeConnection() throws IOException {connection = new Socket(HOST, PORT);}public void executeCommand(String command) {// Send command to OpenOffice and read response}}4.执行转换命令:一旦连接到OpenOffice服务,就可以发送命令来执行文档转换。
实现功能点:支持导入word ,txt,pdf,excel,ppt。
office文件转换成SWF文件,使用第三方工具:
1.OpenOffice,版本为:OpenOffice 4.1.1
2.pdf2swf,版本为:swftools-2013-04-09-1007
3.jodconverter,版本为:jodconverter-2.2.2
系统升级之前,首先安装1),2)工具,安装过程如下:
一、安装openoffice
1.openoffice:Apache_OpenOffice_4.1.1_Linux_x86-64_install-rpm_zh-CN.tar.gz
命令1:tar zxvf Apache_OpenOffice_4.1.1_Linux_x86-64_install-rpm_zh-CN.tar.gz 命令2:cd zh-CN/RPMS/
命令3:yum --disablerepo=* localinstall *
2.font字体包:font.zip 包含了目前所有中文字体包,将其解压到
/opt/openoffice4/share/fonts/truetype目录下面
命令:待补充。
unzip font.jar
3.执行start-openoffice.sh脚本
如果没有执行权限,执行以下命令:
chmod u+x start-openoffice.sh
如果具备执行权限,执行以下命令,启动soffice服务:
./start-openoffice.sh
4.检查soffice服务是否启动成功,执行以下命令:
ps aux | grep soffice
看到以下信息,说明soffice启动成功:
5、设置开机自启动soffice服务:
(1)将start-openoffice.sh拷贝到/usr/local/bin目录下,
命令:cp start-openoffice.sh /usr/local/bin
(2)然后执行,
命令:vim /etc/rc.local
(3)在最后一行添加:/usr/local/bin/start-openoffice.sh
(4)存盘退出,
命令:esc : wq
二、安装SwfTool
1.swftools:swftools-2013-04-09-1007.tar.gz
按以下顺序,执行命令:
1.tar zxvf swftools-0.9.1.tar.gz
2.cd swftools-0.9.1
3../configure
4.make
5.make install
2.在以上基础上安装xpdf语言包,详情如下:
将xpdf-chinese-simplified.tar.gz文件,解压到/usr/share/xpdf下,编辑add-to-xpdfrc 文件,执行命令如下:
1. tar zxvf xpdf-chinese-simplified.tar.gz
2.unzip font.zip
3.mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/
4.cd /usr/share/xpdf/xpdf-chinese-simplified
5.vi add-to-xpdfrc
内容如下:
=======================================================
==============================
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 /usr/share/xpdf/xpdf-chinese-simplified/Ad
obe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/share/xpdf/xpdf-chinese-simplified/IS
O-2022-CN.unicodeMap
unicodeMap EUC-CN /usr/share/xpdf/xpdf-chinese-simplified/EU
C-CN.unicodeMap
unicodeMap GBK /usr/share/xpdf/xpdf-chinese-simplified/GBK.u
nicodeMap
cMapDir Adobe-GB1 /usr/share/xpdf/xpdf-chinese-simplified/CM
ap
toUnicodeDir /usr/share/xpdf/xpdf-chinese-simplified/Cmap
displayCIDFontTT Adobe-GB1
/usr/share/xpdf/xpdf-chinese-simplified/CMap/gbsn00lp.ttf
displayCIDFontTT
Adobe-GB1 /usr/share/xpdf/xpdf-chinese-simplified/CMap/gkai00mp.ttf
#----- end Chinese Simplified support package
=======================================================
==============================
6)保存后退出,命令:esc : wq
7)最后使用如下命令测试pdf2swf服务是否可以正常使用:
pdf2swf -s languagedir=/usr/local/xpdf-chinese-simplified -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 "/opt/123.pdf" -o "/opt/test/123.swf"
如果能看到123.swf,且能在浏览器打开,文字正常,说明psf2swf服务可
以正常使用。
测试:
http://192.168.3.11:8080/AQB/material/getMaterialInfo?requestJson={'
materialId':27098,'materialTypeId':5,'pcmFormat':'alaw','pcmChannels
':1,'userId':2519}
本次升级使用到的命令:
1.tar zxvf
Apache_OpenOffice_4.1.1_Linux_x86-64_install-rpm_zh-CN.tar.gz
2.yum --disablerepo=* localinstall *
3.chmod u+x start-openoffice.sh
4.ps aux | grep soffice
5.cp start-openoffice.sh /usr/local/bin
6.vim /etc/rc.local
7.存盘退出:esc : wq
tar zxvf swftools-0.9.1.tar.gz
cd swftools-0.9.1
./configure
make
make install
tar zxvf xpdf-chinese-simplified.tar.gz
unzip font.zip
mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/
cd /usr/share/xpdf/xpdf-chinese-simplified
vi add-to-xpdfrc
将tar解压缩到指定的目录下:
tar zxvf /source/kernel.tgz -C /source/ linux-2.6.29
tar zxvf swftools-2013-04-09-1007.tar.gz
常用命令:
1.移除文件:rm -rf *
2.动态查看文件内容:tail -f aa.txt
3清楚文件内容:rm -rf catalina.out
4.查看端口号:netstat -apn | grep 8100
5.查看服务进程号:ps -ef | grep java
6.查看系统编码方式:env | grep LANG
7.查看服务进程:ps -ef | grep soffice
8.查看服务进程:ps aux | grep soffice
9.拷贝文件到指定的目录下面:
cp simsun.tt* /opt/openoffice4/share/fonts/truetype
cp * /usr/share/xpdf/xpdf-chinese-simplified/CMap/
10.系统重启:reboot
11.将当前服务器上文件复制到另一个服务器上:
scp swftools-2013-04-09-1007.tar.gz root@192.168.6.88:/root/officeToSwf 12.vim /proc/cpuinfo。