文档在线预览(二)-使用JODConverter转换文档为PDF
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相关推荐
- 文档在线预览(二)word、pdf、excel文件转html以实现文档在线预览
文章目录 一.前言 1.aspose 2 .poi + pdfbox 3 spire 二.将文件转换成html字符串 1.将word文件转成html字符串 1.1 使用aspose 1.2 使用poi ...
- Android实现文档在线预览功能
前段时间,项目中有个需求是实现文档预览的功能,Android要实现该功能要比IOS复杂的多,下面就我调研的情况,总结一下,供大家参考: 一.WebView 网页显示 该方式类似于ios的实现方式,使用 ...
- 【githubshare】开源的文件文档在线预览项目,支持主流办公文档的在线预览,如 doc、docx、Excel、pdf、txt、zip、rar、 图片等
GitHub 上一份硬核计算机科学 CS 自学计划,偏向软件工程和系统架构方向. 旨在帮助开发者制定一个为期 3-5 年的重学 CS 目标,夯实 CS 基本功,达到美国一流大学 CS 专业本科毕业水平 ...
- 文档在线预览产品系列-解决方案篇
文档在线预览产品系列-解决方案篇 hello 大家好,我又来了,上次我们聊到文档在线预览市场的产品类别有很多,今天我们就来盘点下各个类别以及对应的一些产品品牌. 产品类别 开源项目 开源项目是啥就不多 ...
- 在线文库源码php,在线文库网站 文档分享平台网站 在线文档 在线预览网站 源码...
套餐说明: 套餐1:在线文库源代码PHP 在线预览.NET(在线预览不含API接口调用功能)--180元 套餐2:在线文库源代码PHP 在线预览.NET(在线预览包含API接口调用功能)--220元 ...
- 开源好物分享!文档在线预览平台
场景:每个企业都有对文档的查看需求,如何基于h5实现web的文档在线预览需求.如果单位预算很充足,可以购买商用服务,这不在此讨论范畴.如果预算比较有限,今天分享一款开源的,码云上有8kstar的开源好 ...
- 推荐一款文件文档在线预览解决方案
真正的大师,永远都怀着一颗学徒的心! 今天给大家推荐一款文件文档在线预览解决方案.同学们,我们在开发的过程中,对于一些管理系统肯定有文档在线预览的需求.对于简单的文档,用谷歌的在线文档可以直接处理.但 ...
- 腾讯轻量+宝塔搭建文档在线预览项目kkFileView
一.使用的服务 1.腾讯云 [腾讯云]轻量应用服务器Lighthouse,「轻」松上云!1核2G6M 限时低至74元/年起! https://cloud.tencent.com/act/cps/red ...
- java flexpaper_Java+FlexPaper+swfTools 文档在线预览demo
1.概述 主要原理 1.通过第三方工具openoffice,将word.excel.ppt.txt等文件转换为pdf文件 2.通过swfTools将pdf文件转换成swf格式的文件 3.通过FlexP ...
- JAVA-文件文档在线预览项目解决方案-kkFileView
1. 简介 kkFileView是文件文档在线预览项目解决方案,对标业务付费产品有 永中office,office365,idocv等.该项目使用六星的springboot大家,易上手和部署,基本支持 ...
最新文章
- 关闭Windows 2000/XP/2003默认共享
- AppWidgetServiceImpl: Widget Error: widget.host.callbacks is null
- 最小熵原理:“物以类聚”之从图书馆到词向量
- cisco 生成树协议PVST+
- 2014年考研英语一翻译知识点
- Objective-C中的associated object释放时机问题
- JavaScript中带有示例的Math.cos()方法
- python中usecols_Python学习路线?
- 准确检测图像的轮廓 opencv_OpenCV图像处理-轮廓和轮廓特征
- TIME_WAIT状态过多的排查
- javascript设计模式实践之策略模式--输入验证
- 第四、五周学习进度表
- 字符编码ASCII ,Unicode ,UTF-8
- 关于TP模板的目录设置和渲染问题
- 4G标准LTE FDD与LTE TDD的不同
- java会场安排问题_Cisco WebEx Meetings Server 常见问题解答15 发行版.PDF
- rabbitmq批量确认结合qos导致的消费者假死和消息丢失问题
- 双十一哪款蓝牙耳机值得入手?音质超棒的蓝牙耳机推荐
- POJ1753(枚举)
- CSharp 基本知识-数组