APP下载

办公自动化系统中对Word文档操作的研究

2019-05-24陈进才

电脑知识与技术 2019年7期
关键词:办公自动化

陈进才

摘要:隨着我国互联网和信息化的发展,越来越多的企事业单位及政府单位实现了基于互联网的办公自动化,通过办公自动化系统实现日常办公,大大提高了办公效率。自动化办公系统中通常存在着大量对WORD文档的操作,但WORD文档不能在浏览器中预览和编辑,只有下载后才能预览和编辑,编辑后又不能直接保存到服务器上,这给广大用户在使用上造成了很大不便。本文重点讨论在互联网办公自动化系统中如何在线进行WORD文档的预览及编辑。

关键词: PIO;WORD读写;WORD在线预览;WORD在线编辑;办公自动化

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2019)07-0215-02

1 引言

基本互联网的办公自动化系统通常是B/S架构,也就是客户端是浏览器,后端是服务器。该架构相对于C/S架构的优势是客户端直接使用PC系统集成的浏览器访问系统,不需要专门在每台客户机上安装客户端软件。C/S架构的系统需要在每个客户电脑上安装客户端,所以相对B/S架构维护起来比较麻烦;C/S架构的系统由于客户端是本机程序所以能很方便地通过WINDOWS的OLE(Object Linking and Embedding,即对象连接与嵌入技术)对象访问WORD对象,进而对WORD文档进行预览读写等操作。 B/S架构的前端是浏览器,由第三方公司开发,不提供对WORD文档的直接操作,无法查看WORD文档的内容,通常是直接下载,下载后使用本机OFFICE打开,不能提供在线预览功能。

2 需要解决的问题

本单位办公自动化系统主要为本单位的日常办公服务,后端服务器端使用JAVA开发,前端使用JS开发,主要模块有合同管理、项目管理、收款管理、支出管理、资料管理等,每个模块中都要上传WORD文档。比如合同管理模块,经办人在申请合同时需要上传WORD版本的合同,然后提交部门经理审批,部门经理在审批该合同时,只需要阅读该合同的内容,如发现有错误,将退回给经办人,让经办人修改,现在部门经理阅读该WORD文档的办法通常是下载该文档,然后用本机的OFFICE软件打开阅读,这样每次阅读都要下载一次,产生了大量的垃圾文件,也给他们在使用中造成很大的不便;所以他们急切需要更简便的操作,也就是需要系统能提供在线预览功能,不需要下载文档直接使用浏览器在线查看WORD文档的内容。

3 预览WORD文档的解决方法

由于本单位的WORD文档是作为单独文件存放于服务器上的,所以可以通过转换成其浏览器可显示的文件的方式来预览WORD文档。

3.1 将WORD文档转换成HTML显示

将WORD文档转换成HTML显示的方法有很多,这里使用Apache的提供的PIO库进行转换;由于WORD有DOC和DOCX两种,所以需要区别对待,以下为实现的关键代码:

public static void docToHtml(String inFile, String outFile)

throws TransformerException, IOException,

ParserConfigurationException {

HWPFDocument hwpf = new HWPFDocument(new FileInputStream(inFile));

if (null==hwpf)

return;

WordToHtmlConverter hConverter = new WordToHtmlConverter(

DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());

if (null==hConverter)

return; hConverter.setPicturesManager( new PicturesManager() {

public String savePicture( byte[] content, PictureType picType, String sugName, float wInc, float hInc ) {

return "./"+sugName;

}

} );

hConverter.processDocument(hwpf);

List picList = hwpf.getPicturesTable().getAllPictures();

if (null==picList)

return;

for(int i=0;i

Picture pic = (Picture)picList.get(i);

try {

pic.writeImageContent(new FileOutputStream("./" + pic.suggestFullFileName()));

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

Document htmFile = hConverter.getDocument();

if (null==htmFile)

return;

ByteArrayOutputStream outStream = new ByteArrayOutputStream();

if (null==outStream)

return;

DOMSource dmsrc = new DOMSource(htmFile);

if (null==dmsrc)

return;

StreamResult strmResult = new StreamResult(outStream);

if (null==strmResult)

return;

TransformerFactory tf = TransformerFactory.newInstance();

Transformer tformer = tf.newTransformer();

tformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

tformer.setOutputProperty(OutputKeys.INDENT, "yes");

tformer.setOutputProperty(OutputKeys.METHOD, "HTML");

tformer.transform(dmsrc, strmResult);

outStream.close();

writeFile(new String(outStream.toByteArray()), ouFile);

}

將WORD文档转换为HTML文件后,基本可以实现WORD文档的预览功能了。

3.2 将WORD转换为PDF进行显示

将WORD文档转换为HTML文件后,基本可以实现WORD文档的预览功能了,但是却不能保持良好的WORD的排版格式,为了有更好的用户体验,可以进一步将HTML文件转换成PDF文档。

1) 第一步 将WORD文档转换成HTML

参见3.1

2) 将HTML文档转换为PDF文档

使用Apache的iText库进行转换,以下为实现的关键代码:

public int htmlToPdf(String inFile, String outFile)

throws Exception {

OutputStream outStream = new FileOutputStream(outFile);

ITextRenderer render = new ITextRenderer();

if (null==render || null== outStream)

return 0;

render.setDocument(new File(intFile));

ITextFontResolver tfont = render.getFontResolver();

//加入对中文字体的支持

tfont.addFont("simsunb.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); render.getSharedContext().setBaseURL("./");

render.layout(); render.createPDF(outStream);//创建文件

outStream.flush();//存盘

outStream.close();//关闭文件

return 1;

}

3) 显示PDF文档

可以通过jquery将PDF文件显示在网页中,代码如下:

猜你喜欢

办公自动化
企事业单位办公自动化的应用与发展探析
浅谈办公自动化系统的设计与应用
办公自动化中的计算机应用
计算机信息处理技术在办公自动化中的应用研究
办公自动化系统软件教学探索
办公室自动化、办公自动化与OA
沪苏浙高速公路办公自动化系统设计
利用办公自动化进行图书馆管理
从信息自动化到知识自动化——大数据时代办公自动化系统的功能分析
浅析县级医院办公室办公自动化