JAVA调用PageOffice在线打开、编辑Word文档

合集下载

Java-Web-Office-文档在线编辑

Java-Web-Office-文档在线编辑

Java-Web-Office-文档在线编辑在当今移动化和云化的时代,办公文档的在线编辑和共享已经成为商业世界的基础要求。

在此背景下,Java Web Office文档在线编辑成为了一个广泛使用的技术。

在本文档中,我们将讨论Java Web Office文档在线编辑的基本原理和使用。

什么是Java Web Office文档在线编辑?Java Web Office文档在线编辑是一种基于Java Web技术和Office文档格式的在线编辑工具。

它允许用户在线编辑各种类型的Office文档,如Word文档、Excel表格、PowerPoint演示等。

它还可以将编辑的结果存储在云端,以便用户可以方便地实现文档的共享和协作编辑。

Java Web Office文档在线编辑的基本原理Java Web Office文档在线编辑的基本原理是将用户编辑的Office文档在服务器端转换为HTML格式,并在用户的浏览器中显示为可编辑网页。

当用户在网页上进行编辑操作时,服务器会将编辑内容保存在数据库中,以便用户之后可以打开文档并继续编辑。

用户还可以方便地阅读、打印和下载文档。

Java Web Office文档在线编辑通常包括以下主要功能:•文字处理:允许用户输入、编辑和格式化文本。

•图片处理:允许用户插入、调整和删除图片。

•文档存储:允许用户将文档存储在云端,以便共享和协作编辑。

•用户管理:允许管理员在网站上注册用户,并管理用户权限。

Java Web Office文档在线编辑的使用Java Web Office文档在线编辑通常可以在网站上直接使用,也可以通过API连接到其他系统中。

在使用Java Web Office文档在线编辑时,用户需要进行以下步骤:步骤1:登录用户需要在网站上注册账户并登录后才能使用Java Web Office文档在线编辑。

登录后,用户可以在网站上找到编辑文档的选项。

步骤2:选择文档用户可以从自己的本地计算机或者从网站上选择需要编辑的文档。

Java实现在线预览的示例代码(openOffice实现)

Java实现在线预览的示例代码(openOffice实现)

Java实现在线预览的⽰例代码(openOffice实现)简介之前有写了poi实现在线预览的⽂章,⾥⾯也说到了使⽤openOffice也可以做到,这⾥就详细介绍⼀下。

我的实现逻辑有两种:⼀、利⽤jodconverter(基于OpenOffice服务)将⽂件(.doc、.docx、.xls、.ppt)转化为html格式。

⼆、利⽤jodconverter(基于OpenOffice服务)将⽂件(.doc、.docx、.xls、.ppt)转化为pdf格式。

转换成html格式⼤家都能理解,这样就可以直接在浏览器上查看了,也就实现了在线预览的功能;转换成pdf格式这点,需要⽤户安装了Adobe Reader XI,这样你会发现把pdf直接拖到浏览器页⾯可以直接打开预览,这样也就实现了在线预览的功能。

将⽂件转化为html格式或者pdf格式话不多说,直接上代码。

package com.pdfPreview.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import .ConnectException;import java.text.SimpleDateFormat;import java.util.Date;import com.artofsolving.jodconverter.DocumentConverter;import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;/*** 利⽤jodconverter(基于OpenOffice服务)将⽂件(*.doc、*.docx、*.xls、*.ppt)转化为html格式或者pdf格式,* 使⽤前请检查OpenOffice服务是否已经开启, OpenOffice进程名称:soffice.exe | soffice.bin** @author yjclsx*/public class Doc2HtmlUtil {private static Doc2HtmlUtil doc2HtmlUtil;/*** 获取Doc2HtmlUtil实例*/public static synchronized Doc2HtmlUtil getDoc2HtmlUtilInstance() {if (doc2HtmlUtil == null) {doc2HtmlUtil = new Doc2HtmlUtil();}return doc2HtmlUtil;}/*** 转换⽂件成html** @param fromFileInputStream:* @throws IOException*/public String file2Html(InputStream fromFileInputStream, String toFilePath,String type) throws IOException {Date date = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");String timesuffix = sdf.format(date);String docFileName = null;String htmFileName = null;if("doc".equals(type)){docFileName = "doc_" + timesuffix + ".doc";htmFileName = "doc_" + timesuffix + ".html";}else if("docx".equals(type)){docFileName = "docx_" + timesuffix + ".docx";htmFileName = "docx_" + timesuffix + ".html";}else if("xls".equals(type)){docFileName = "xls_" + timesuffix + ".xls";htmFileName = "xls_" + timesuffix + ".html";}else if("ppt".equals(type)){docFileName = "ppt_" + timesuffix + ".ppt";htmFileName = "ppt_" + timesuffix + ".html";}else{return null;}File htmlOutputFile = new File(toFilePath + File.separatorChar + htmFileName);File docInputFile = new File(toFilePath + File.separatorChar + docFileName);if (htmlOutputFile.exists())htmlOutputFile.delete();htmlOutputFile.createNewFile();if (docInputFile.exists())docInputFile.delete();docInputFile.createNewFile();/*** 由fromFileInputStream构建输⼊⽂件*/try {OutputStream os = new FileOutputStream(docInputFile);int bytesRead = 0;byte[] buffer = new byte[1024 * 8];while ((bytesRead = fromFileInputStream.read(buffer)) != -1) {os.write(buffer, 0, bytesRead);}os.close();fromFileInputStream.close();} catch (IOException e) {}OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);try {connection.connect();} catch (ConnectException e) {System.err.println("⽂件转换出错,请检查OpenOffice服务是否启动。

Java操作word文档

Java操作word文档

Java操作word文档Java操作Word文档操作微软word办公软件的开发工具:1.Apache基金会提供的POI2.通过freemarker去解析xml3.Java2word4.iText5.Jacob通过对以上工具的对比,本人发现还是Itext比较简单易用,很容易上手,能够很轻松的处理word的样式、表格等。

贴上代码,供大家参考:Jar包准备:itext-2.0.1.jar -------------------核心包iTextAsian.jar--------------------解决word样式、编码问题扩展包1、设置标题样式public static Paragraph setParagraphTitle(String content,Font contentFont){Paragraph p = new Paragraph(content, contentFont);p.setAlignment(Table.ALIGN_CENTER);p.setIndentationLeft(60);p.setIndentationRight(60);p.setSpacingBefore(20);return p;}2、设置内容样式:public static Paragraph setParagraphStyle(String content,Font contentFont){Paragraph p = new Paragraph(content, contentFont);p.setFirstLineIndent(40);// 首行缩进p.setAlignment(Paragraph.ALIGN_JUSTIFIED);// 对齐方式p.setLeading(30);// 行间距p.setIndentationLeft(60);// 左边距,右边距p.setIndentationRight(60);return p;}3、设置文档末尾时间:public static Paragraph setParagraphTime(Font contentFont){ Paragraph p = new Paragraph(FormatUtil.getCurrentDate(), contentFont);p.setIndentationLeft(250);p.setIndentationRight(60);p.setLeading(30);p.setFirstLineIndent(40);return p;}4、开始写word文档咯:public static void WriteDoc(String path,Map map){Document document = null;try {File file = new File(path);if (!file.exists()) {file.createNewFile();}document = new Document(PageSize.A4);RtfWriter2.getInstance(document, newFileOutputStream(file));document.open();// 设置title body 中文字体及样式BaseFont cnFont =BaseFont.createFont("STSongStd-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);Font titleFont = new Font(cnFont,22, Font.NORMAL, newColor(0,0, 0));Font contentFont = new Font(cnFont, 16, Font.NORMAL, new Color(0,0, 0));// 设置文本标题String titleInfo = “标题”;// 设置文本内容String contentFirst ="啊啊啊啊啊啊啊啊啊啊";String contentSecond="啊啊啊啊啊啊啊啊啊啊啊啊";String contentThird="啊啊啊啊啊啊啊啊啊啊啊啊啊";String contentFourth="啊啊啊啊啊啊啊啊啊啊";document.add(setParagraphTitle(titleInfo,titleFont));document.add(setParagraphStyle(contentFirst,contentFont));document.add(setParagraphStyle(contentSecond,contentFo nt));document.add(setParagraphStyle(contentThird,contentFont) );document.add(setParagraphStyle(contentFourth,contentFon t));document.add(setParagraphTime(contentFont));} catch (FileNotFoundException e) {e.printStackTrace();} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{try {if (document != null) { document.close();}} catch (Exception e2) {e2.printStackTrace();}}}5、上传下载大家就自个动手了。

PageOffice如何执行Word文档中的宏命令

PageOffice如何执行Word文档中的宏命令

PageOffice如何执行Word文档中的宏命令在对Word文档进行操作时有时会需要执行某些宏命令,也就是word文件可以通过创建宏、编写宏、执行宏,来实现某些功能。

但是在线编辑文件的时候怎么用程序调用执行word文件中的宏命令呢?为此,我通过下面的一个示例演示一下如何简单的在Word中执行宏命令。

具体实现步骤如下:第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站中根目录下添加pageoffice文件夹(在PageOffice官方网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice示例代码里的pageoffice文件夹拷贝到根目录下就可以了)。

第二步:在网站中创建动态页面Word.aspx。

先在工具箱中拖动一个PageOfficeCtrl控件到页面上(PageOfficeCtrl控件位于工具箱最下方),并设置控件所在层(<div></div>)的高和宽,否则Word文档无法正常显示。

接下来,在页面上添加一个多行的文本框、一个非服务器端按钮,如下所示:<asp:TextBox ID="TextBox1"runat="server"Height="87px"TextMode="Mul tiLine"Width="486px"></asp:TextBox><input id="Button1"type="button"value="执行宏命令"onclick="return Button1_onclick()"/>然后添加JS函数,代码如下:function Button1_onclick() {document.getElementById("PageOfficeCtrl1").RunMacro("VBA函数名", document.getElementById("TextBox1").value);}第三步:Word.aspx.cs后台编写代码。

Java实现办公文档在线预览功能

Java实现办公文档在线预览功能

Java实现办公⽂档在线预览功能java实现办公⽂件在线预览功能是⼀个⼤家在⼯作中也许会遇到的需求,⽹上些公司专门提供这样的服务,不过需要收费如果想要免费的,可以⽤openoffice,实现原理就是:通过第三⽅⼯具openoffice,将word、excel、ppt、txt等⽂件转换为pdf⽂件流;当然如果装了Adobe Reader XI,那把pdf直接拖到浏览器页⾯就可以直接打开预览,前提就是浏览器⽀持pdf⽂件浏览。

我这⾥介绍通过poi实现word、excel、ppt转pdf流,这样就可以在浏览器上实现预览了。

1.到官⽹下载安装包,安装运⾏。

(不同系统的安装⽅法,⾃⾏百度,这⾥不做过多说明)2.再项⽬的pom⽂件中引⼊依赖<!--openoffice--><dependency><groupId>com.artofsolving</groupId><artifactId>jodconverter</artifactId><version>2.2.1</version></dependency>3.将word、excel、ppt转换为pdf流的⼯具类代码import com.artofsolving.jodconverter.DefaultDocumentFormatRegistry;import com.artofsolving.jodconverter.DocumentConverter;import com.artofsolving.jodconverter.DocumentFormat;import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;import com.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;import java.io.*;import .HttpURLConnection;import .URL;import .URLConnection;/*** ⽂件格式转换⼯具类** @author tarzan* @version 1.0* @since JDK1.8*/public class FileConvertUtil {/** 默认转换后⽂件后缀 */private static final String DEFAULT_SUFFIX = "pdf";/** openoffice_port */private static final Integer OPENOFFICE_PORT = 8100;/*** ⽅法描述 office⽂档转换为PDF(处理本地⽂件)** @param sourcePath 源⽂件路径* @param suffix 源⽂件后缀* @return InputStream 转换后⽂件输⼊流* @author tarzan*/public static InputStream convertLocaleFile(String sourcePath, String suffix) throws Exception {File inputFile = new File(sourcePath);InputStream inputStream = new FileInputStream(inputFile);return covertCommonByStream(inputStream, suffix);}/*** ⽅法描述 office⽂档转换为PDF(处理⽹络⽂件)** @param netFileUrl ⽹络⽂件路径* @param suffix ⽂件后缀* @return InputStream 转换后⽂件输⼊流* @author tarzan*/public static InputStream convertNetFile(String netFileUrl, String suffix) throws Exception {// 创建URLURL url = new URL(netFileUrl);// 试图连接并取得返回状态码URLConnection urlconn = url.openConnection();urlconn.connect();HttpURLConnection httpconn = (HttpURLConnection) urlconn;int httpResult = httpconn.getResponseCode();if (httpResult == HttpURLConnection.HTTP_OK) {InputStream inputStream = urlconn.getInputStream();return covertCommonByStream(inputStream, suffix);}return null;}/*** ⽅法描述将⽂件以流的形式转换** @param inputStream 源⽂件输⼊流* @param suffix 源⽂件后缀* @return InputStream 转换后⽂件输⼊流* @author tarzan*/public static InputStream covertCommonByStream(InputStream inputStream, String suffix) throws Exception {ByteArrayOutputStream out = new ByteArrayOutputStream();OpenOfficeConnection connection = new SocketOpenOfficeConnection(OPENOFFICE_PORT);connection.connect();DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);DefaultDocumentFormatRegistry formatReg = new DefaultDocumentFormatRegistry();DocumentFormat targetFormat = formatReg.getFormatByFileExtension(DEFAULT_SUFFIX);DocumentFormat sourceFormat = formatReg.getFormatByFileExtension(suffix);converter.convert(inputStream, sourceFormat, out, targetFormat);connection.disconnect();return outputStreamConvertInputStream(out);}/*** ⽅法描述 outputStream转inputStream** @author tarzan*/public static ByteArrayInputStream outputStreamConvertInputStream(final OutputStream out) throws Exception {ByteArrayOutputStream baos=(ByteArrayOutputStream) out;return new ByteArrayInputStream(baos.toByteArray());}public static void main(String[] args) throws IOException {//convertNetFile("http://172.16.10.21/files/home/upload/department/base/201912090541573c6abdf2394d4ae3b7049dcee456d4f7.doc", ".pdf"); //convert("c:/Users/admin/Desktop/2.pdf", "c:/Users/admin/Desktop/3.pdf");}}4.serve层在线预览⽅法代码/*** @Description:系统⽂件在线预览接⼝* @Author: tarzan*/public void onlinePreview(String url, HttpServletResponse response) throws Exception {//获取⽂件类型String[] str = SmartStringUtil.split(url,"\\.");if(str.length==0){throw new Exception("⽂件格式不正确");}String suffix = str[str.length-1];if(!suffix.equals("txt") && !suffix.equals("doc") && !suffix.equals("docx") && !suffix.equals("xls")&& !suffix.equals("xlsx") && !suffix.equals("ppt") && !suffix.equals("pptx")){throw new Exception("⽂件格式不⽀持预览");}InputStream in=FileConvertUtil.convertNetFile(url,suffix);OutputStream outputStream = response.getOutputStream();//创建存放⽂件内容的数组byte[] buff =new byte[1024];//所读取的内容使⽤n来接收int n;//当没有读取完时,继续读取,循环while((n=in.read(buff))!=-1){//将字节数组的数据全部写⼊到输出流中outputStream.write(buff,0,n);}//强制将缓存区的数据进⾏输出outputStream.flush();//关流outputStream.close();in.close();}5.controler层代码@ApiOperation(value = "系统⽂件在线预览接⼝ by tarzan")@PostMapping("/api/file/onlinePreview")public void onlinePreview(@RequestParam("url") String url, HttpServletResponse response) throws Exception{fileService.onlinePreview(url,response);}到此这篇关于Java实现办公⽂档在线预览功能的⽂章就介绍到这了,更多相关Java ⽂档在线预览内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

Java-Web-Office-文档在线编辑

Java-Web-Office-文档在线编辑

Java Web Office文档在线编辑1、创建页面<html><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"> <title>Office在线编辑</title></head><body><script language="javascript">function CreateDoc(){document.all.OA1.CreateNew( "Word.Document");}function CreateExcel(){document.all.OA1.CreateNew( "Excel.Sheet");}function CreatePPT(){document.all.OA1.CreateNew( "PowerPoint.Slide");}function OpenFromLocal(){document.all.OA1.OpenLocalDialog();}function ShowToolbars(){var x = document.all.OA1.GetToolbarsIsShow();document.all.OA1.ShowToolbars( !x);}function PrintFile(){if(document.all.OA1.IsOpen()){document.all.OA1.Print();}}function DocIsDirty(){if(document.all.OA1.IsOpen()){if(document.all.OA1.IsDirty()){window.alert("The file has been modified!");}else{window.alert("The file hasn't been modified!");}}}function SaveAs(){document.all.OA1.SaveLocalDialog();}function CloseFile(){if(document.all.OA1.IsOpen()){document.all.OA1.Close();}}function OpenFromServer(){var sPath= window.prompt("服务器文件路径:","http://192.168.1.216:6888/msbb/tmp/office/test.doc");document.all.OA1.OpenWebFile(sPath)}function SavetoServer(){if(document.all.OA1.IsOpen()){window.alert("保存文件到服务器!");document.all.OA1.SaveWebFile("http://192.168.1.216:6888/msbb/UpLoadServlet");}}</script><object classid="clsid:18A295DA-088E-42D1-BE31-5028D7F9B9B5"id="OA1"width="100%" height="700"codebase="http://192.168.1.216:6888/msbb/tmp/office/OA.CAB#3,1,0,4"> <param name="_Version"value="65536"><param name="_ExtentX"value="17859"><param name="_ExtentY"value="10848"><param name="_StockProps"value="0"><param name="BorderStyle"value="1"><param name="BorderColor"value="16777215"><param name="CaptionColor"value="12632256"><param name="CaptionLabel"value="等待打开一个 Office 文档!"></object><input type="button"onClick="CreateDoc()"value="新建 Word"><input type="button"onClick="CreateExcel()"value="新建 Excel"><input type="button"onClick="CreatePPT()"value="新建 PPT"><input type="button"onClick="OpenFromLocal()"value="打开"><input type="button"onClick="ShowToolbars()"value="显示/隐藏工具栏"><input type="button"onClick="DocIsDirty()"value="是否修改"><input type="button"onClick="PrintFile()"value="打印"><input type="button"onClick="SaveAs()"value="保存"><input type="button"onClick="CloseFile()"value="关闭"><br><input type="button"onClick="OpenFromServer()"value="从服务器打开"><form><input type="button"onClick="SavetoServer()"value="保存到服务器"></form></body></html>2、创建文件保存到服务器Servletpackage tmp;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.UUID;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import login.Constants;import mons.fileupload.servlet.ServletFileUpload;import mons.fileupload.util.Streams;public class UpLoadServlet extends HttpServlet{public void init() throws ServletException{}public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// processFileUpload(req, resp);processFileUpload(req);}public void processFileUpload(HttpServletRequest request) throws IOException{// 读取控件输入流InputStream stream = request.getInputStream();// 将输入流保存到文件FileOutputStream savefile = new FileOutputStream(Constants.FILEPA TH + UUID.randomUUID() + ".doc");byte[] bytes = new byte[1024];int len;while ((len = stream.read(bytes)) != -1){savefile.write(bytes, 0, len);savefile.flush();}// 关闭文件stream.close();// 关闭输入流savefile.close();}public void processFileUpload(HttpServletRequest request, HttpServletResponse response) throws IOException {ServletFileUpload upload = new ServletFileUpload();InputStream stream = null;BufferedInputStream bis = null;BufferedOutputStream bos = null;try{stream = request.getInputStream();String filename = "ddd.doc";String fileId = UUID.randomUUID().toString() + filename.substring(stIndexOf("."));// 取扩展名bis = new BufferedInputStream(stream);bos = new BufferedOutputStream(new FileOutputStream(new File(Constants.FILEPATH + fileId)));Streams.copy(bis, bos, true);response.getWriter().write("{success:true}");} catch (Exception e){response.getWriter().write(String.format("{success:false,message:'%s'}", e.getMessage()));} finally{if (stream != null){try{stream.close();} catch (Exception e){}}if (bis != null){try{bis.close();} catch (Exception e){}}if (bos != null){try{bos.close();} catch (Exception e){}}}}public void destroy(){}}3、配置web.xml<servlet><display-name>UpLoadServlet</display-name><servlet-name>UpLoadServlet</servlet-name><servlet-class>tmp.UpLoadServlet</servlet-class> </servlet><servlet-mapping><servlet-name>UpLoadServlet</servlet-name><url-pattern>/UpLoadServlet</url-pattern></servlet-mapping>4、下载控件包Office文档在线编辑OCX控件包。

JAVA不使用POI,用PageOffice动态导出Word文档

JAVA不使用POI,用PageOffice动态导出Word文档

JAVA不使用POI,用PageOffice动态导出Word文档很多情况下,软件开发者需要从数据库读取数据,然后将数据动态填充到手工预先准备好的Word模板文档里,这对于大批量生成拥有相同格式排版的正式文件非常有用,这个功能应用PageOffice的基本动态填充功能即可实现。

但若是用户想动态生成一个没有固定模版的公文时,换句话说,没有办法事先准备一个固定格式的模板时,就需要开发人员在后台用代码实现Word文档的从零到图文并茂的动态生成功能了。

这里的“零”指的是Word空白文档。

那如何实现Word文档的从无到有呢,下面我就把自己实现这一功能的过程介绍一下。

例如,我想打开一个Word文档,里面的内容为:标题(粗体、黑体、字体大小为20、居中显示)、第一段内容(内容(略)、字体倾斜、字体大小为10、中文“楷体”、英文“Times New Roman”、红色、最小行间距、左对齐、首行缩进)、第二段内容(内容(略)、字体大小为12、黑体、1.5倍行间距、左对齐、首行缩进、插入图片)、第三段内容(内容(略)、字体大小为14、华文彩云、2倍行间距、左对齐、首行缩进)第一步:请先安装PageOffice的服务器端的安装程序,之后在WEB项目下的“WebRoot/WEB-INF/lib”路径中添加pageoffice.cab和pageoffice.jar(在网站的“下载中心”中可下载相应的压缩包,解压之后直接将pageoffice.cab和pageoffice.jar文件拷贝到该目录下就可以了)文件。

第二步:修改WEB项目的配置文件,将如下代码添加到配置文件中:<!-- PageOffice Begin --><servlet><servlet-name>poserver</servlet-name><servlet-class>com.zhuozhengsoft .pageoffice.poserver.Server</servlet-class></servlet><servlet-mapping><servlet-name>poserver</servlet-name><url-pattern>/poserver.do</url-pattern></servlet-mapping><servlet-mapping><servlet-name>poserver</servlet-name><url-pattern>/pageoffice.cab</url-pattern></servlet-mapping><servlet-mapping><servlet-name>poserver</servlet-name><url-pattern>/popdf.cab</url-pattern></servlet-mapping><servlet-mapping><servlet-name>poserver</servlet-name><url-pattern>/sealsetup.exe</url-pattern></servlet-mapping><servlet><servlet-name>adminseal</servlet-name><servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal </servlet-class></servlet><servlet-mapping><servlet-name>adminseal</servlet-name><url-pattern>/adminseal.do</url-pattern></servlet-mapping><servlet-mapping><servlet-name>adminseal</servlet-name><url-pattern>/loginseal.do</url-pattern></servlet-mapping><servlet-mapping><servlet-name>adminseal</servlet-name><url-pattern>/sealimage.do</url-pattern></servlet-mapping><mime-mapping><extension>mht</extension><mime-type>message/rfc822</mime-type></mime-mapping><context-param><param-name>adminseal-password</param-name><param-value>123456</param-value></context-param><!-- PageOffice End -->第三步:在WEB项目的WebRoot目录下添加文件夹存放word模板文件,在此命名为“doc”,将要打开的空白Word文件拷贝到该文件夹下,我要打开的Word文件为“test.doc”。

java解析world 文件 修改内容

java解析world 文件 修改内容

java解析world 文件修改内容Java解析World文件是一种常见的操作,可以通过读取并修改World文档中的内容。

World文件是一种二进制文件格式,通常用于Microsoft Office中的Word软件。

在Java中,我们可以使用一些库来实现这个功能,例如Apache POI。

首先,我们需要导入Apache POI的相关依赖。

可以在Maven项目的pom.xml 文件中添加以下代码:```xml<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency>```接下来,我们可以通过以下步骤来解析并修改World文件的内容:1. 创建一个`FileInputStream`对象,用于打开World文件:```javaFileInputStream file = new FileInputStream("path/to/your/world.doc");```2. 创建一个`XWPFDocument`对象,用于表示整个解析后的文档:```javaXWPFDocument document = new XWPFDocument(file);```3. 遍历文档中的段落,并修改需要修改的内容:```javafor (XWPFParagraph paragraph : document.getParagraphs()) {String text = paragraph.getText();// 进行内容修改,例如替换指定文本text = text.replace("需要修改的内容", "替换后的内容");// 将修改后的文本重新设置回段落中paragraph.setText(text);}```4. 保存修改后的文档到新的文件中:```javaFileOutputStream outputStream = newFileOutputStream("path/to/your/modified_world.doc");document.write(outputStream);outputStream.close();```通过以上步骤,我们可以实现Java解析并修改World文件的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

普通的MS Office Word只能在本地磁盘上打开和编辑保存,这使得程序员在开发项目时受到很多的约束,许多的功能无法实现或者无法达到理想的效果。

下面我就简单的和大家分享一下如何实现Word文档的在线打开、编辑和保存。

第一步:请先安装PageOffice的服务器端的安装程序,之后在WEB项目下的“WebRoot/WEB-INF/lib”路径中添加pageoffice.cab和pageoffice.jar(在网站的“下载中心”中可下载相应的压缩包,解压之后,双击运行Pageoffice服务器端安装程序setup.exe,之后将pageoffice.cab 和pageoffice.jar文件拷贝到该目录下就可以了)文件。

第二步:修改WEB项目的配置文件,将如下代码添加到配置文件中:
<!-- PageOffice Begin -->
<servlet>
<servlet-name>poserver</servlet-name><servlet-class>com.zhuozhengsoft.pageoffice.poserve r.Server
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/poserver.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/pageoffice.cab</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/popdf.cab</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>poserver</servlet-name>
<url-pattern>/sealsetup.exe</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>adminseal</servlet-name>
<servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/adminseal.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/loginseal.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adminseal</servlet-name>
<url-pattern>/sealimage.do</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>mht</extension>
<mime-type>message/rfc822</mime-type>
</mime-mapping>
<context-param>
<param-name>adminseal-password</param-name>
<param-value>123456</param-value>
</context-param>
<!-- PageOffice End -->
第三步:在WEB项目的WebRoot目录下添加文件夹存放word模板文件,在此命名为“doc”,将要打开的Word文件拷贝到该文件夹下,我要打开的Word文件为“test.doc”。

第四步:在WEB项目的WebRoot目录下添加动态页面word.jsp。

在该页面后台中添加自定义标签库:“<%@ taglib uri="" prefix="po"%>”,并引入PageOffice类库:“<%@page import=”com.zhuozhengsoft.pageoffice.*”%>”。

之后在前台HTML页面中添加PageOfficeCtrl控件:“<po:PageOfficeCtrl id="PageOfficeCtrl1"></po:PageOfficeCtrl>”,并设置控件所在层的大小。

第五步:在word.jsp的后台页面,利用PageOfficeCtrl控件在线打开Word文档,代码如下:
//********************卓正PageOffice组件的使用**********************
PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
poCtrl1.setServerPage("poserver.do"); //此行必须
poCtrl1.setSaveFilePage("SaveFile.jsp");//如要保存文件,此行必须
poCtrl1.addCustomToolButton("保存", "Save()", 1);//添加自定义工具栏按钮
//打开文件,webOpen()方法中的三个参数分别为:要打开的文件路径、打开模式、打开的操作人,其中文件路径既可是相对路径也可是绝对路径
//绝对路径:String filePath =
request.getSession().getServletContext().getRealPath("doc/test.doc");
String filePath = "doc/test.doc";//相对路径
poCtrl1.webOpen(filePath, OpenModeType.docNormalEdit, "张三");
poCtrl1.setTagId("PageOfficeCtrl1"); //此行必须
再在Word.jsp的前台页面添加JS函数,执行保存操作,代码如下:
function Save() {
document.getElementById("PageOfficeCtrl1").WebSave();
}
如上所述,简单的就实现了Word文档的在线打开操作。

接下来开始编写保存页面。

第六步:在WEB项目的WebRoot目录下添加动态页面SaveFile.jsp,在后台页面中编写代码处理要保存的Word文档,代码如下:
FileSaver fs = new FileSaver(request, response);
//保存Word文档到相应的磁盘路径中
fs.saveToFile(request.getSession().getServletContext().getRealPath("doc/") + "/" +
fs.getFileName());
//fs.showPage(300,300);//可在前台弹出相应大小的窗口,并在上面显示想要显示的信息内容
fs.close();
至此,就简单的实现了Word文档的现在打开、编辑和保存了。

方案总结:
上述的示例主要是借助了PageOffice开发平台的PageOfficeCtrl控件,利用该控件还可实现Word文档内容的提交、添加手写批注、加盖电子印章、Word文档到PDF文档的转换等功能。

另外,在PageOffice 平台下还可实现Excel、PPT、PDF等文档的在线打开、编辑保存等等各种操作,很好地解决了开发OA系统的程序员的一大技术难题。

相关文档
最新文档