1.JODConverter介绍:

JODConverter automates conversions between office document formats using OpenOffice.org or LibreOffice.

Supported formats include OpenDocument, PDF, RTF, HTML, Word, Excel, PowerPoint, and Flash.

It can be used as a Java library, a command line tool, or a web application.

JODConverter可以将一般格式的文档转换为PDF格式。

官网地址:http://code.google.com/p/jodconverter/

下载地址:http://download.csdn.net/detail/jolingogo/5074520

2.示例

这里用的是3.0的版本

OfficeManager officeManager = new DefaultOfficeManagerConfiguration().buildOfficeManager();
officeManager.start();OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
converter.convert(new File("test.odt"), new File("test.pdf");officeManager.stop();

如果你直接运行这些代码的话,是不会成功的,报一个错误

Exception in thread "main" java.lang.IllegalStateException: officeHome not set and could not be auto-detectedat org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration.buildOfficeManager(DefaultOfficeManagerConfiguration.java:163)at org.ygy.util.PDFUtil.toPDF(PDFUtil.java:11)at org.ygy.util.PDFUtil.main(PDFUtil.java:21)

要使用JODconverter需要安装OpenOffice或者LibreOffice,我安装了OpenOffice。

然后设置一下officeHome:

public static void toPDF() {OfficeManager officeManager = new DefaultOfficeManagerConfiguration().setOfficeHome("D:\\program files\\openoffice.org 3").buildOfficeManager();officeManager.start();OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);converter.convert(new File("E:\\demo.doc"), new File("E:\\demo_1.pdf"));officeManager.stop();}

这下就可以了,之前用2.2的版本,需要手动的开一个服务:

public static void startServer() {String cmd = "cmd /k soffice -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\" -nofirststartwizard";try {Runtime.getRuntime().exec(cmd , null , new File("D:\\program files\\openoffice.org 3\\program"));} catch (IOException e) {e.printStackTrace();}}

3.TXT转换为PDF

在将.txt文件转换为PDF的时候发现,如果TXT文件的编码是ANSI的话,中文会产生乱码,解决办法是先将.txt保存为.odt文件,再将.odt文件转换为PDF就可以了。

如果TXT文件的编码是UTF-8的话,中文也可以正常转换。

package org.ygy.util;import java.io.File;import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;public class PDFUtil {public static void toPDF(String sourcePath , String targetpath) {if(sourcePath.endsWith(".txt")) {//先保存为.odtStringBuffer odtPath = new StringBuffer(sourcePath.substring(0 , sourcePath.lastIndexOf(".")));odtPath.append(".odt");FileUtil.write(sourcePath , odtPath.toString());sourcePath = odtPath.toString();}OfficeManager officeManager = new DefaultOfficeManagerConfiguration().setOfficeHome("D:\\program files\\openoffice.org 3").buildOfficeManager();officeManager.start();OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);converter.convert(new File(sourcePath), new File(targetpath));officeManager.stop();}public static void main(String[] args) {PDFUtil.toPDF("E:\\type.txt" , "E:\\type_2.pdf");}
}

这篇博客还介绍了其他的转换PDF的方法,可以学习一下

http://www.cnblogs.com/luckyxiaoxuan/archive/2012/06/13/2548355.html

文档在线预览(二)-使用JODConverter转换文档为PDF相关推荐

  1. 文档在线预览(二)word、pdf、excel文件转html以实现文档在线预览

    文章目录 一.前言 1.aspose 2 .poi + pdfbox 3 spire 二.将文件转换成html字符串 1.将word文件转成html字符串 1.1 使用aspose 1.2 使用poi ...

  2. Android实现文档在线预览功能

    前段时间,项目中有个需求是实现文档预览的功能,Android要实现该功能要比IOS复杂的多,下面就我调研的情况,总结一下,供大家参考: 一.WebView 网页显示 该方式类似于ios的实现方式,使用 ...

  3. 【githubshare】开源的文件文档在线预览项目,支持主流办公文档的在线预览,如 doc、docx、Excel、pdf、txt、zip、rar、 图片等

    GitHub 上一份硬核计算机科学 CS 自学计划,偏向软件工程和系统架构方向. 旨在帮助开发者制定一个为期 3-5 年的重学 CS 目标,夯实 CS 基本功,达到美国一流大学 CS 专业本科毕业水平 ...

  4. 文档在线预览产品系列-解决方案篇

    文档在线预览产品系列-解决方案篇 hello 大家好,我又来了,上次我们聊到文档在线预览市场的产品类别有很多,今天我们就来盘点下各个类别以及对应的一些产品品牌. 产品类别 开源项目 开源项目是啥就不多 ...

  5. 在线文库源码php,在线文库网站 文档分享平台网站 在线文档 在线预览网站 源码...

    套餐说明: 套餐1:在线文库源代码PHP 在线预览.NET(在线预览不含API接口调用功能)--180元 套餐2:在线文库源代码PHP 在线预览.NET(在线预览包含API接口调用功能)--220元 ...

  6. 开源好物分享!文档在线预览平台

    场景:每个企业都有对文档的查看需求,如何基于h5实现web的文档在线预览需求.如果单位预算很充足,可以购买商用服务,这不在此讨论范畴.如果预算比较有限,今天分享一款开源的,码云上有8kstar的开源好 ...

  7. 推荐一款文件文档在线预览解决方案

    真正的大师,永远都怀着一颗学徒的心! 今天给大家推荐一款文件文档在线预览解决方案.同学们,我们在开发的过程中,对于一些管理系统肯定有文档在线预览的需求.对于简单的文档,用谷歌的在线文档可以直接处理.但 ...

  8. 腾讯轻量+宝塔搭建文档在线预览项目kkFileView

    一.使用的服务 1.腾讯云 [腾讯云]轻量应用服务器Lighthouse,「轻」松上云!1核2G6M 限时低至74元/年起! https://cloud.tencent.com/act/cps/red ...

  9. java flexpaper_Java+FlexPaper+swfTools 文档在线预览demo

    1.概述 主要原理 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexP ...

  10. JAVA-文件文档在线预览项目解决方案-kkFileView

    1. 简介 kkFileView是文件文档在线预览项目解决方案,对标业务付费产品有 永中office,office365,idocv等.该项目使用六星的springboot大家,易上手和部署,基本支持 ...

最新文章

  1. 关闭Windows 2000/XP/2003默认共享
  2. AppWidgetServiceImpl: Widget Error: widget.host.callbacks is null
  3. 最小熵原理:“物以类聚”之从图书馆到词向量
  4. cisco 生成树协议PVST+
  5. 2014年考研英语一翻译知识点
  6. Objective-C中的associated object释放时机问题
  7. JavaScript中带有示例的Math.cos()方法
  8. python中usecols_Python学习路线?
  9. 准确检测图像的轮廓 opencv_OpenCV图像处理-轮廓和轮廓特征
  10. TIME_WAIT状态过多的排查
  11. javascript设计模式实践之策略模式--输入验证
  12. 第四、五周学习进度表
  13. 字符编码ASCII ,Unicode ,UTF-8
  14. 关于TP模板的目录设置和渲染问题
  15. 4G标准LTE FDD与LTE TDD的不同
  16. java会场安排问题_Cisco WebEx Meetings Server 常见问题解答15 发行版.PDF
  17. rabbitmq批量确认结合qos导致的消费者假死和消息丢失问题
  18. 双十一哪款蓝牙耳机值得入手?音质超棒的蓝牙耳机推荐
  19. POJ1753(枚举)
  20. CSharp 基本知识-数组

热门文章

  1. linux服务器压缩日志定时脚本
  2. 新玺配资:煤炭深蹲 新能源方向迎来机会!
  3. Python字符串对齐方式
  4. Scrapy爬取重庆安居客二手房并存入mysql数据库(上)
  5. DES加密之强制更新下载分离器
  6. 帮我用java写一个音频背景音分离的代码
  7. 有关于PID Autotune库的一些认识
  8. 输出一个集合的所有子集
  9. 【在线听】香港回归20周年历年金曲奖歌曲
  10. OpenWhisk feeds的模式和实现