阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法
查看: 3007|回复: 3

openoffice 转pdf

[复制链接]

3

主题

10

回帖

106

积分

注册会员

Rank: 2

积分
106
发表于 2015-12-29 17:32:23 | 显示全部楼层 |阅读模式
  1. /**
  2.          * 将Office文档转换为PDF. 运行该函数需要用到OpenOffice, OpenOffice下载地址为
  3.          * http://www.openoffice.org/
  4.          *
  5.          * <pre>
  6.          * 方法示例:
  7.          * String sourcePath = "F:\\office\\source.doc";
  8.          * String destFile = "F:\\pdf\\dest.pdf";
  9.          * Converter.office2PDF(sourcePath, destFile);
  10.          * </pre>
  11.          *
  12.          * @param sourceFile
  13.          *            源文件, 绝对路径. 可以是Office2003-2007全部格式的文档, Office2010的没测试. 包括.doc,
  14.          *            .docx, .xls, .xlsx, .ppt, .pptx等. 示例: F:\\office\\source.doc
  15.          * @param destFile
  16.          *            目标文件. 绝对路径. 示例: F:\\pdf\\dest.pdf
  17.          * @return 操作成功与否的提示信息. 如果返回 -1, 表示找不到源文件, 或url.properties配置错误; 如果返回 0,
  18.          *         则表示操作成功; 返回1, 则表示转换失败
  19.          */
  20.         public static int office2PDF(String sourceFile, String destFile) {
  21.                 try {
  22.                         File inputFile = new File(sourceFile);
  23.                         if (!inputFile.exists()) {
  24.                                 return -1;// 找不到源文件, 则返回-1
  25.                         }

  26.                         // 如果目标路径不存在, 则新建该路径
  27.                         File outputFile = new File(destFile);
  28.                         if (!outputFile.getParentFile().exists()) {
  29.                                 outputFile.getParentFile().mkdirs();
  30.                         }

  31.                         /*
  32.                          * 从url.properties文件中读取OpenOffice的安装根目录, OpenOffice_HOME对应的键值.
  33.                          * 我的OpenOffice是安装在D:\Program Files\OpenOffice.org 3下面的, 如果大家的
  34.                          * OpenOffice不是安装的这个目录下面,需要修改url.properties文件中的 OpenOffice_HOME的键值.
  35.                          * 但是需要注意的是:要用"\"代替"",用"\:"代替":" . 如果大家嫌麻烦,
  36.                          * 可以直接给OpenOffice_HOME变量赋值为自己OpenOffice的安装目录
  37.                          */
  38.                         Properties prop = new Properties();
  39.                         FileInputStream fis = null;
  40.                         fis = new FileInputStream(RUL_PATH);// 属性文件输入流
  41.                         prop.load(fis);// 将属性文件流装载到Properties对象中
  42.                         fis.close();// 关闭流

  43.                         String OpenOffice_HOME = prop.getProperty("OpenOffice_HOME");
  44.                         if (OpenOffice_HOME == null)
  45.                                 return -1;
  46.                         // 如果从文件中读取的URL地址最后一个字符不是 '\',则添加'\'
  47.                         if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') {
  48.                                 OpenOffice_HOME += "\";
  49.                         }
  50.                         // 启动OpenOffice的服务
  51.                         String command = OpenOffice_HOME
  52.                                         + "program\\soffice.exe -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard";
  53.                         Process pro = Runtime.getRuntime().exec(command);
  54.                         // connect to an OpenOffice.org instance running on port 8100
  55.                         OpenOfficeConnection connection = new SocketOpenOfficeConnection(
  56.                                         "127.0.0.1", 8100);
  57.                         connection.connect();

  58.                         // convert
  59.                         DocumentConverter converter = new OpenOfficeDocumentConverter(
  60.                                         connection);
  61.                         converter.convert(inputFile, outputFile);

  62.                         // close the connection
  63.                         connection.disconnect();
  64.                         // 关闭OpenOffice服务的进程
  65.                         pro.destroy();
  66.                         
  67.                         return 0;
  68.                 } catch (FileNotFoundException e) {
  69.                         e.printStackTrace();
  70.                         return -1;
  71.                 } catch (ConnectException e) {
  72.                         e.printStackTrace();
  73.                 } catch (IOException e) {
  74.                         e.printStackTrace();
  75.                 }

  76.                 return 1;
  77.         }
复制代码


捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权郑重声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。
4、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
5、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
6、如无法链接失效或侵犯版权,请给我们来信:jiandaima@foxmail.com

回复

使用道具 举报

3

主题

10

回帖

106

积分

注册会员

Rank: 2

积分
106
 楼主| 发表于 2016-1-21 09:18:39 | 显示全部楼层
登录可见评论
回复

使用道具 举报

0

主题

3

回帖

18

积分

新手上路

Rank: 1

积分
18
发表于 2016-1-21 17:12:38 | 显示全部楼层
登录可见评论
回复

使用道具 举报

0

主题

161

回帖

992

积分

高级会员

Rank: 4

积分
992
发表于 2019-3-8 12:34:40 | 显示全部楼层
登录可见评论
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2024-3-28 17:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表