资源简介
开发了一个后台服务,提供文档的转换,包括:
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
相关资源
- oA办公系统源码MyOffice
- 高清图文】Office 2007 详细培训教材w
- Office Clear
- NPOI v2.2.1
- Fix it Microsoft office365/2013...../彻底卸载
- 绕过word宏密码
- OFFICE2010使用技巧与实战方法大全(
- office好用又免费的批量打印.exe
- Office2007图标完整版PNG格式(16x16+32x
- TabsforOfficeCenter.rar
- 徕卡测量办公室 Office_zh2.20
- microsoft office 办公应用
- ntko_officev3.0.0.7.zip
- 全国计算机等级考试二级教程MS Offi
- Office文件批量转换pdf
- oofficepjwor_xpgod.zip
- office竞赛试题word、excel、ppt
- jacob生成word目录
- [电子教案(PPT版本)]计算机应用基础
- Math Type 汉化版
- 通达OA Office Anywhere 2015 集团版8.13.16
- Office 文件压缩
- 点聚WebOffice
- Office_2019_64bit.7z
-
.net使用dsofr
amer打开officeV2.3源码、、 - Office批量打印精灵 v3.1.zip
- 奈末Office批量打印助手 v9.0.rar
- Office2007.rar
- NTKOOFFICE破解版.exe
- office2007上机练习题库很全、很实用
评论
共有 条评论