资源简介
开发了一个后台服务,提供文档的转换,包括:
DOC->PDF
DOCX->PDF
XLS->PDF
XLSX->PDF
PPT->PDF
PPTX->PDF
TXT->PDF
PDF->TXT
JPG->DOCX
PDF->缩略图
此外,该服务拥有定义良好的启动、停止功能。能够优雅地停止正在执行的转换任务。会记录下尚未完成的任务,下次启动服务的时候自动继续执行。

代码片段和文件信息
package com.openoffice.service;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.xmlWriter;
import com.openoffice.utils.ExeEnvironment;
/**
* 文档转换服务类
*/
public class DocumentConvertService {
/**
* 任务执行器
*/
private volatile TrackingExecutor exec;
/**
* 存储一组要执行的文档转换任务
*/
private final List tasksToExecute;
/**
* 默认构造函数
*/
public DocumentConvertService()
{
this.tasksToExecute = new ArrayList();
}
/**
* 启动文档转换服务
*/
public synchronized void start()
{
if(ExeEnvironment.isVerbose())
System.out.println(“正在启动文档转换服务...“);
// 创建任务执行器
this.exec = new TrackingExecutor(Executors.newSingleThreadExecutor());
// 从xml文件中加载上次未执行完的文档转换任务
loadUnExecutedDocumentConvertTaskFromxmlFile();
for (IDocumentConvertTask task : this.tasksToExecute)
submitDocumentConvertTask(task);
this.tasksToExecute.clear();
if(ExeEnvironment.isVerbose())
System.out.println(“文档转换服务启动成功!“);
}
/**
* 停止文档转换服务
* @param timeout 最大等待时间
* @param timeUnit 时间单位
* @throws InterruptedException
*/
public synchronized void stop(long timeout TimeUnit timeUnit) throws InterruptedException
{
if(ExeEnvironment.isVerbose())
System.out.println(“正在停止文档转换服务...“);
try
{
List unExecutedList=this.exec.shutdownNow();
// 如果在指定时间内成功取消了已提交但未结束的任务,将这些任务保存起来
if (this.exec.awaitTermination(timeout timeUnit))
saveUnExecutedDocumentConvertTask(this.exec.getCancelledTasks());
// 保存已提交但尚未启动的任务
saveUnExecutedDocumentConvertTask(unExecutedList);
}
finally
{
this.exec = null;
}
//将未执行的文档转换任务保存到xml文件,以便下次启动该服务时再执行。
saveUnExecutedDocumentConvertTaskToxmlFile();
if(ExeEnvironment.isVerbose())
System.out.println(“文档转换服务已停止!“);
}
/**
* 从xml文件中加载上次未执行完的文档转换任务
*/
private void loadUnExecutedDocumentConvertTaskFromxmlFile()
{
String path = Thread.currentThread()
.getContextClassLoader().getResource(“com/openoffice/service/unExecutedTasks.xml“).getPath()
.replace(“%20“ “ “);
File file = new File(path);
if (file.exists()){
SAXReader saxReader = new SAXReader();
try {
// 获取地图属性xml文档
Document document = saxReader.read(file);
// 获取根元素
Element root = document.getRootElement();
// 获取序列列表
@SuppressWarnings(“unchecked“)
List taskList = root.elements();
// 遍历序列
for(int i=0; i
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 937 2017-04-01 08:27 DocumentConvertService\.classpath
文件 398 2017-04-01 08:27 DocumentConvertService\.project
文件 629 2017-04-01 08:27 DocumentConvertService\.settings\org.eclipse.jdt.core.prefs
文件 7236 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\DocumentConvertService.class
文件 2289 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\GetThumbnailConvertTask.class
文件 275 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\IDocumentConvertTask.class
文件 2806 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\ImageToWordConvertTask.class
文件 1999 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\OfficeToPDFConvertTask.class
文件 2386 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\PDFToTxtConvertTask.class
文件 1092 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\RunnableTask.class
文件 2998 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\Test.class
文件 1454 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\Test2.class
文件 2156 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\TrackingExecutor.class
文件 59 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\service\unExecutedTasks.xm
文件 3140 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\utils\ExeEnvironment.class
文件 1588 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\utils\FileCopyUtil.class
文件 11327 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\utils\ImageToWordConverter.class
文件 5599 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\utils\OfficeToPDFConverter.class
文件 4863 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\utils\PdfThumbnailGenerator.class
文件 3310 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\utils\PDFToTxtConverter.class
文件 122 2017-04-01 08:27 DocumentConvertService\bin\com\openoffice\utils\url.properties
文件 16332 2017-04-01 08:27 DocumentConvertService\libs\bootstrapconnector.jar
文件 41123 2017-04-01 08:27 DocumentConvertService\libs\commons-cli-1.2.jar
文件 109043 2017-04-01 08:27 DocumentConvertService\libs\commons-io-1.4.jar
文件 60841 2017-04-01 08:27 DocumentConvertService\libs\commons-logging.jar
文件 313898 2017-04-01 08:27 DocumentConvertService\libs\dom4j-1.6.1.jar
文件 218564 2017-04-01 08:27 DocumentConvertService\libs\fontbox-1.8.8.jar
文件 1508245 2017-04-01 08:27 DocumentConvertService\libs\icepdf-core.jar
文件 32054 2017-04-01 08:27 DocumentConvertService\libs\jodconverter-2.2.2.jar
文件 5712 2017-04-01 08:27 DocumentConvertService\libs\jodconverter-cli-2.2.2.jar
............此处省略43个文件信息
- 上一篇:广义估计方程詹姆斯英文版
- 下一篇:Windows Azure平台概述ppt
相关资源
- [免费]强大的OFFICE经验(Word Excel)
- office2010时安装找不到dwtrig20.exe
- office_word_api 开发文档
- 含Microsoft.Office.Interop.Owc11
- 自己写的delphi控制PPTWord的一个小程序
- office强力卸载工具win10版V2.10
- 亚信防毒墙Officescan卸载工具DelTrendR
- 基于Office2007开发的合并会计报表系统
- 无需共享打印机实现远程打印功能小
- pageOfficeDemo
- Advanced Office Password Recovery_5.10汉化注册
- Excel图表实战技巧精粹
- weboffice_V7.0.0.2
- 二级office往年真题
- 信息技术比赛office试题
- Accent Office Password Recovery v9.6 x64.zip
- Microsoft Office Visio 科学图形包
- 转:excel中用的md5宏,可批量转字串为
- office密码破机器
- Nortel Converged Office for Communication Serv
- Nortel Converged Office for Communication Serv
- 10套office操作题及参考答案
- weboffice6的安装程序和js封装
- wps2019政府版
- 计算机文化基础项目教程(windows7+o
- 解决office或wps无法正确插入对象的系
- NTKO OFFICE.zip
- 未来教育考试系统(免激活)
- OFFICE DEPLOYMENT TOOL 2016部署工具.rar
- calibre 仿真超细教程,candence没有那么
评论
共有 条评论