pageoffice打开ftp文件_pageoffice访问服务器上的ftp文件 - CSDN
精华内容
参与话题
  • (一)介绍文件上传下载: (1)前端思路:  用formData封装好file以及相关参数,然后l利用ajax请求往后台传数据   html的代码: <input id="cm_file" type="file" name="...

    (一)介绍文件上传下载:

    (1)前端思路:

             用formData封装好file以及相关参数,然后l利用ajax请求往后台传数据
             

     html的代码:
        <input id="cm_file" type="file" name="upFileName">
    
     js代码: 
         var formData = new FormData();
         var cm_uploadFile = $('#cm_file',cmwes_page).get(0).files[0];//获取文件,这里cmwes_page可以不要,这是用来规定范围的
    
         formData.append("file",cm_uploadFile);
          $.ajax({
                    url: '${rc.getContextPath()}/manage/cmWesData/saveCmWesData',
                    type: 'POST',
                    cache: false,
                    data: formData,
                    processData: false,
                    contentType: false
                }).done(function(res) {
                    
                }).fail(function(res) {
    
                });
      

    (2)后台controller接受这个file类型的数据,然后传到service层进行处理

        //这里的file就是我前端封装到formdata中的参数‘file’
        @RequestMapping("saveCmWesData")
        @ResponseBody
        public HashMap<String,Object> saveCmWesData(@RequestParam("file") MultipartFile file,             
            HttpServletRequest request) throws IOException {
     cmWesDataService.upFileToFtp(file,fileName,fileSize,username,material,materialtext,stcode, stcodeDesc,fileDesc,fileNameTwo,version);
           //然后在service层进行上传、下载、删除的操作
               
        }
    

    (3)上传、下载、删除的操作

        在上传的时候需要注意的是,把文件上传到ftp服务器的同时,也要把文件名,文件大小,文件类型保存到数据库中。

       先定义一些全局变量

      

     @Value("${uploadftp.path}")
        private  String basePath ;
    
        @Value("${uploadftp.servername}")
        private  String host ;
    
        @Value("${uploadftp.port}")
        private  int port ;
    
        @Value("${uploadftp.username}")
        private  String userName  ;
    
        @Value("${uploadftp.password}")
        private  String password ;
    

    上传:

     @Transactional
        @Override
        public HashMap<String,Object> upFileToFtp(MultipartFile file, String fileName, String fileSize, String username, String material, String materialtext, String stcode,String stcodeDesc, String fileDesc,  String fileNameTwo,Integer version) throws IOException {
            HashMap<String,Object> hashMap = new HashMap<>();
            //String trueFileName = fileNameTwo.substring(0,fileName.indexOf("."))+".pdf";
            cmWesDataDao.insertWesData(fileNameTwo,fileSize,material,materialtext,stcode,stcodeDesc,fileDesc,username,version);
            FTPClient ftp = new FTPClient();
                fileName = new String(fileName.getBytes("GBK"),"iso-8859-1");// 转换后的目录名或文件名,解决中文乱码的问题
                FileInputStream input = (FileInputStream) file.getInputStream();
                int reply;
                ftp.connect(host,port);
                // 如果采用默认端口,可以使用ftp.connect(host)的方式直接连接FTP服务器
                ftp.login(userName, password);// 登录
                reply = ftp.getReplyCode();
                if (!FTPReply.isPositiveCompletion(reply)) {
                    ftp.disconnect();
                    //return result;
                }
                //切换到上传目录
                if (!ftp.changeWorkingDirectory(basePath + filePath)) {
                    //如果目录不存在创建目录
                    if (!cn.evun.ime.platform.core.utils.StringUtils.isEmpty(filePath)) {
                        String[] dirs = filePath.split("/");
                        String tempPath = basePath;
                        for (String dir : dirs) {
                            if (null == dir || "".equals(dir)) continue;
                            tempPath += "/" + dir;
                            logger.info("地址=============================="+tempPath);
                            if (!ftp.changeWorkingDirectory(tempPath)) {
                                if (!ftp.makeDirectory(tempPath)) {
                                    //return result;
                                } else {
                                    ftp.changeWorkingDirectory(tempPath);
                                }
                            }
                        }
                    }
                }
                //设置上传文件的类型为二进制类型
                ftp.setFileType(FTP.BINARY_FILE_TYPE);
                //上传文件
                if (!ftp.storeFile(fileName, input)) {
                   /* CmWesDataServiceImpl cmWesDataService = new CmWesDataServiceImpl();
                    cmWesDataService.convert2PDF(basePath+filePath+fileName,basePath+filePath+trueFileName);
                    delCmWesData(fileName);
                    logger.info("==================================删除成功==========================");*/
                }
                input.close();
                ftp.logout();
                hashMap.put("ftpFlag","true");
                return hashMap;
                //ftp上传之后,把相关信息保存到数据库中去
                //cmWesDataService.selectWesDateVer(fileName);
    
        }

     下载:主要是返回一个路径,然后前端直接调用一个前端方法就能实现浏览器下载

     @Override
        public String getDownCmWesDataUrl(String filename) throws UnsupportedEncodingException {
            return "ftp://"+host+filePath+URLEncoder.encode(filename, "GBK");
        }
    
    
    
    
    然后前端接受到这个url,直接window.location.href = url,就能实现浏览器下载了

    删除:根据文件名,先去保存文件相关信息的表中删除,然后再去ftp服务器上删除相关信息

        @Override
        @Transactional
        public HashMap<String, Object> delCmWesData(String filename) throws IOException {
            HashMap<String,Object> hashMap = new HashMap<>();
            String filenameTwo = filename;
            filename = new String(filename.getBytes("GBK"),"iso-8859-1");
            cmWesDataDao.delCmWesData(filenameTwo);//先去数据库中删除数据
            String path = basePath+filePath;
            FTPClient ftp = new FTPClient();
            ftp.connect(host);
            ftp.login(userName,password);
            ftp.changeWorkingDirectory(path);//切换工作目录
            ftp.dele(filename);
            ftp.logout();
            hashMap.put("delFlag","true");
            return hashMap;
        }

    (二)实现文件的在线预览功能,其实就是要把word、ppt、excel等格式的文档转化为pdf,然后前端也是调用            window.location.href = url这个方法,就能实现pdf预览功能。

       (1)其中做预览的过程中遇到了几个小问题。如何转化word、ppt、excel成pdf,然后一般开发都是用windows系统,但是部署项目一般都是linux服务器,所以调试的时候会有点麻烦。其中我这边参考有价值的文档,到时候我会放在末尾供大家参考。

    我转pdf用的是openoffice工具,然后你需要在linux上安装这个openoffice工具,但是在测试的时候会发现word中的中文字体都乱掉了,所以需要添加windows的字体到linux系统上,这边我也是参考网上资料,到时候添出链接给大家。我是先写demo,然后demo测试通过之后,再在业务代码中需要用到的地方替换进去就好了。demo逻辑:先在maven中引入依赖,然后再进行操作。

     <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>19.0</version>
            </dependency>
    
    
            <dependency>
                <groupId>com.github.livesense</groupId>
                <artifactId>jodconverter-core</artifactId>
                <version>1.0.5</version>
            </dependency>
    
    package cn.evun.ime.mm.controller;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    
    import org.artofsolving.jodconverter.OfficeDocumentConverter;
    import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
    import org.artofsolving.jodconverter.office.OfficeManager;
    
    /**
     * <strong>Title :<br></strong>
     * <strong>Package : <br></strong>
     * <strong>Description : </strong><br>
     * <strong>Create on : 2018/10/12<br></strong>
     * <p>
     *
     * @author tengwei.wang<br>
     * @version <strong>v1.0.0</strong><br>
     * <br>
     * <strong>修改历史:</strong><br>
     * 修改人 | 修改日期 | 修改描述<br>
     * -------------------------------------------<br>
     * <br>
     * <br>
     */
    public class OpenOfficePdfConvert {
        /**
         * @param args
         */
        private static OfficeManager officeManager;
        //private static String OFFICE_HOME = "C:/Program Files (x86)/OpenOffice 4/";
        private static String OFFICE_HOME = "/opt/openoffice4/";
        private static int port[] = { 8100 };
    
        public void convert2PDF(String inputFile, String outputFile) throws FileNotFoundException {
    
            startService();
            System.out.println("进行文档转换转换:" + inputFile + " --> " + outputFile);
    
            OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager);
            converter.convert(new File(inputFile), new File(outputFile));
    
            stopService();
            System.out.println();
    
        }
    
        // 打开服务器
        public static void startService() {
            DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
            try {
                System.out.println("准备启动服务....");
                configuration.setOfficeHome(OFFICE_HOME);// 设置OpenOffice.org安装目录
                configuration.setPortNumbers(port); // 设置转换端口,默认为8100
                configuration.setTaskExecutionTimeout(1000 * 60 * 5L);// 设置任务执行超时为5分钟
                configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);// 设置任务队列超时为24小时
    
                officeManager = configuration.buildOfficeManager();
                officeManager.start(); // 启动服务
                System.out.println("office转换服务启动成功!");
            } catch (Exception ce) {
                System.out.println("office转换服务启动失败!详细信息:" + ce);
            }
        }
    
        // 关闭服务器
        public static void stopService() {
            System.out.println("关闭office转换服务....");
            if (officeManager != null) {
                officeManager.stop();
            }
            System.out.println("关闭office转换成功!");
        }
    
        public static void main(String[] args) throws Exception {
            String path = "/usr/ftp/test";
            OpenOfficePdfConvert opc = new OpenOfficePdfConvert();
            //opc.convert2PDF(path+"a.docx", path+"a.pdf");
            opc.convert2PDF(path+"a.docx", path+"c.pdf");
            //opc.convert2PDF(path+"a.pptx", path+"c.pdf");
        }
    }
    

    https://blog.csdn.net/u013132051/article/details/53514696

    https://blog.csdn.net/zsg88/article/details/77788345

    展开全文
  • office 控件编辑 基本介绍 iWebOffice系列文档控件,是江西金格网络科技有限责任公司经过两年的完全自主开发设计,拥有自主知识产权的中间件软件,于2003年3月取得了国家软件著作权保护,于2003年12月取得了江西...

     

    需求效果实现Office在线编辑支持B/S数据实时交互然后保存成html格式如图:

    の

     

    iWebOffice2003网络文档中间件是iWebOffice系列中的低端产品(该系列包含iWebOffice2000、2003、2006、2009、2012等几款产品)。iWebOffice2003产品支持直接在IE浏览器中在线打开服务器上的文档(Word、Excel、WPS、金山表格)并对文档进行编辑和保存操作,能够自由的将服务器数据库中的数据插入当前文档的指定位置,实现文档和电子表格和数据库的统一管理。同时支持痕迹保留、模板套红、手写签名、电子印章等办公自动化系统必备的功能。

      
     iWebOffice2003网络文档中间件采用标准HTTP、HTTPS协议进行通信可以兼容各种B/S架构下的应用环境,支持任意后台Web服务器程序(IIS、WebLogic、WebSphere、Apache、Tomcat等),任意服务端操作系统(Windows 2000/2003/2008、Linux、Unix等),以及各种B/S架构编程语言(ASP、JSP、PHP、VB.NET、C#.NET、DOMINO等)和各种Web应用服务器体系结构(J2EE、.NET等)。它能非常简洁、方便、快速的集成到您的产品中,为您的产品提供专业、稳定、高效的文档应用功能。

    最新版本

       iWebOffice2003网络文档中间件目前最新版本为:V8.7.2.4全面支持各种OFFICE版本。

     

    功能实现:

    1、强大的扩展通讯能力,支持B/S数据实时交互

      采用了自主知识产权的DBPacketTM对象包协议技术,能够在IE浏览器里非常方便的使用JavaScript或VBScript调用封装好的WebSetMsgByName(设置变量值)和WebGetMsgByName(取得变量值)函数,通过标准的HTTP协议与Web服务器进行通讯,从而实现强大的通讯功能,适用与任何复杂前后台数据交换的工作。

      2、传输过程安全加密,保证文件传输安全

      系统采用前端和后端方式设计,当客户端请求一个服务器文档时,服务器端的组件自动将文档经过加密传输到客户端,客户端将自动检验文档的完整性,以及是否被篡改。当客户端保存文档时,首先将文档加密,然后发送到服务器上,服务器上的后端也自动检验文档的完整性,以及是否被篡改,只有采用双向验证,才能保证文档信息的安全可靠。

      3、支持多种电子印章、手写签名认证功能

      第一种:iWebOffice2003印章和签名能够达到数据库级的认证,应用特有的DBPacketTM对象包协议技术,即任何盖章和手写签名的相关信息,我们都在文档本身和服务器的数据库中各保存一份,这些信息包含盖章签名的用户名,客户机的IP地址,日期时间,同时自动根据这些信息生成全球唯一密码验证序列,从而保证印章签名的安全性、可对比性,即使文件本身的印章签名被篡改,也不会影响服务器数据库中的记录,从而保证文档印章和签名信息的安全可靠性能。

      第二种:可以与iSignature专业手写签名,电子印章软件结合,该技术能够检测文档资料内容是否被修改,如果文件在加盖印章或手写签名后,内容再次被修改,那么印章或签名将自动显示无效,该技术采用印章钥匙盘作为印章硬件载体,手写签名支持各种手写笔,从而真正实现系统的安全性。

      4、支持多种文档保存方式,保存过程简单

      第一种:支持文件保存到服务器数据库中。第二种:支持文档保存到服务器上的指定目录中。第三种:混合保存模式,既保存到数据库中,又保存到文件中。系统在服务器端提供的MsgFileBody属性,就是文档的二进制内容,通过对该属性的存取,可以用来保存或取出数据库记录中的文档,同时提供MsgFileSave(文件路径)和MsgFileLoad(文件路径)来打开和保存服务器上的文档,使用过程非常简单。

      5、快速保存大容量文档

      系统采用HTTP协议快速保存大容量的文档到服务器,应用特有的DBPacketTM对象包协议技术,能比正常保存方式所花的时间短三到五倍,可以在短时间内保存几十M大的文档。如:保存10M大的文档到服务器目录中,只需要约30秒就完成。

      6、支持断点续传和进度条显示跟踪

      在保存文档到服务器时,系统应用特有的DBPacketTM对象包协议技术,实现对文档的断点续传操作,取消保存后,可以再次接着上传,并且实现进度条窗体的显示,方便用户跟踪保存文档进度。该功能可以用于文档交换系统,如公文交换系统实现文档的异地传输。

      7、支持标签管理、定位和标签文字更改

      拥有强大的前后台数据交互功能,能够在打开Word/Wps文件的状态下,根据需要从服务器数据库中提取相关数据,替换标签处的文字内容。并且能够做到在指定位置显示指定内容的效果。

      8、支持模板管理功能

      在编写公文时,经常需要用到各种标准公文模板,通过本功能结合标签功能,能够非常好的实现模板的管理。

      9、支持模版套红功能

      应用特有的DBPacketTM对象包协议技术,支持拟稿时选择模版套红,也支持定稿后的模版套红功能,并且实现文档其它基本要素(如:标题、日期等)直接套到模板中,一次形成正式文档,模板可以从数据库、服务器目录、本地目录中读取,方便开发。

      10、支持原痕迹稿件和定稿稿件分别保存

      在处理文档时,通常需要将原稿和最终稿件分别保存起来,系统提供了定稿保存的方法WebUpdateFile,能够非常简单的解决问题。

      11、支持在提交编辑文档的同时,提交表单的其它数据

      采用强大的扩展通讯技术,让您在提交编辑文档的同时,能够非常方便的提交表单的其它数据,这可以让您更加快速的集成现有的应用程序,或者创建新的应用程序。

      12、支持Word或Excel文件发布为HTML

      可以让您将在线编辑的文档(WORD和EXCEL)以HTML的方式发布到WEB服务器。让没有安装控件的用户也能够方便的查看文档。该功能可以实现文档实时发布,在做内容管理或新闻管理时特别有用。

      13、支持版本控制功能

      支持版本自由控制,可以由用户根据需要创建文挡的多个版本,并可以随时调用以前保存的保本。

      14、使用标准协议进行通讯,通用性好

      底层通讯基于标准的HTTP/HTTPS协议开发,使得合作伙伴无须担心技术的进步带来后续维护和开发风险。

      15、支持从服务器插入透明浮动图片到Word,Excel文档

      支持将服务器图片插入到Word文档的指定位置,并可以设置透明、浮动效果。也支持图片插入到Excel中。

      16、支持将手写签名、电子印章增加到Word,Excel文档

      支持将手写签名、电子印章图片插入到Word文档的指定位置。还提供印章或签名资源预保存功能,用户可以通过密码的方式来获得自己的签名或印章,印章和签名与文档保存在一起,印章或签名可以功过系统的验证来判断真伪。

      17、支持多种形式的文档批注

      支持文字、语音、录影等多媒体批注,可以在不写字的情况下实现批注。

      18、支持禁止文档内容拷贝的功能(包括屏幕拷贝)

      支持禁止文档内容拷贝、粘贴和屏幕拷贝。

      19、支持HTTP协议,HTTPSOVERSSL协议

      对HTTPS协议的支持使得可以创建更加安全的应用。并且自动支持SessionCookie。使用当前页面的SessionCookie和服务器进行交互。

      20、支持各种手写笔录入、签名、绘图和批注

      支持各种手写笔(汉王、蒙恬、联想)录入方式和使用手写笔手写签名、手工绘图和批注,其中手写签名完全支持笔锋处理,字迹更加清晰自然。(手写笔设备需支持WINTAB标准)

      21、支持微软OFFICE各种版本

      所有版本都支持微软OFFICE,6.5版本开始更支持OFFICE2007。(OFFICE高版本的特有文档格式不被支持,当前仅支持“OFFICE2000-2003兼容格式”)

      22、良好的文档兼容性

      完全兼容OFFICE和WPS文档格式,生成的文档可以用MSOFFICE、金山WPS、红旗RedOffice等办公软件浏览和编辑。

      23、支持简洁高效的编程接口

      提供Web方式的VBA接口,可以通过Javascript/Vbscript操作Word/Excel,就像VBA一样。可以完全控制OFFICE文档。

      24、系统二次开发

      提供强大的函数库,支持多种系统环境,多种开发语言,多种数据库。

      25、在下载和上载Office文档时不会产生临时文件

      [高级版]可以提供使用数据流作为Office文档的数据源的技术方式,使控件打开文档时客户端本身不会产生临时文件。

      26、数字证书、可进行身份认证

      [高级版]可提供数字认证功能,采用PKI加密认证体系,保证文件的真实性和不可抵赖性。

      27、支持自定义菜单功能

      5.0以上版本(含)正式支持用户自定义菜单,更加方便用户的操作。

      28、符合ISO文档

      可以实现禁止F12、CTRL+P快捷键,满足ISO文档的要求。

      29、禁止/允许打印功能

      支持禁止/允许打印文档的功能,防止文档打印输入。

      30、插入远程多种格式文件

      支持多种格式文件直接插入当前打开的文档中,如图片、OFFICE文档、TXT、HTML文件等。

      31、打印有痕迹文档功能

      可以实现在只读状态下,打印带有痕迹的文档功能。

      32、打开URL文档

      可以通过URL方式直接在iWebOffice中打开远程文档。

      33、实现文档全文检索功能

      支持提取文档的TEXT内容并直接保存到数据库中,方便用户实现准确、快速全文检索功能。

      34、在文档只读状态下加盖印章功能

      支持文档在只读状态下,实现加盖印章功能,保证文档内容不可修改,同时不可删除印章功能。

      35、文档数据智能填充功能

      支持数据库中的数据直接填充到文档中,并且在指定位置处,可用于文档内容与数据库信息相互交互,类似方法有WebLoadBookmarks()。

      36、文档合并功能

      提供强大的文档合并编辑功能,可以直接从服务器数据库、目录或本地目录中直接读取文档,进行智能定位合并,实现文档结合发布,主要于多个文档收集、采编、合并、发布。

      37、打开和保存本地文档

      支持打开和保存本地文档功能,可以直接打开本地文档,同时也能直接将文档保存到本地。

      38、支持标准强制痕迹保留

      支持标准强制痕迹保留格式,即使文档脱离iWebOffice2003环境,也能保证痕迹的正确显示。

      39、支持多种操作系统,Web服务器,数据库和编程语言

      支持Windows、Linux、Unix等各种操作系统,支持IIS、Domino、Websphere、WebLogic、Apache等所有后台WEB服务器类型,支持DB2、Oracle、SyBase、MySQL、SQLServer、Access等各种常用数据库和JSP、ASP、PHP、VB.NET、C#.NET等多种编程语言。

      40、支持FTP方式打开和保存文档

      支持使用FTP方式打开和保存文档,并且实现帐号信息的加密,实现大文件的保存和快速打开,提供详细二次开发接口,并且可以使用删除FTP删除文档。

      41、重设客户机时间功能

      支持重设客户机时间为服务器时间,可以实现将痕迹保留时间控制为当前服务器时间。

      42、全面兼容WPS

      从WPS2005版本开始全面兼容WPS软件,直接设置EditType=".wps"就可实现WPS在线编辑,其它接口保持与OFFICE一样,实现更强大WPS功能应用。(仅支持WPS编辑WPS格式的文档,不支持WPS编辑WORD格式的文档,也不支持WORD编辑WPS格式的文档)

      43、支持WORD、EXCEL、WPS、ET文档

      支持更多常用文档编辑器,提供WORD、EXCEL、WPS、ET文档的支持功能,实现在线编辑、在线保存、打开本地文件、保存为本地文件、打印文档等功能。(目前总共支持四种文档格式:WORD、EXCEL、WPS、金山表格)

      44、支持转换成PDF文档

      支持将WORD文档转换成标准的PDF文档并保存到服务器上(需安装AdobeAcrobat软件)。配合iWebPDF中间件[]使用将完善用户的完美文档操作、管理、浏览体验。

      45、支持自定义多级菜单

      支持自定义菜单,并且菜单内可定制多级子菜单,方便用户开发极具美观和个性化的菜单功能。

      46、支持文档编辑器判断

      支持对当前机器环境中是否存在某个文档编辑器进行判读,方便用户进行更多人性化的判断和提示。

      47、支持OFFICE2007界面控制

      支持OFFICE2007选项卡界面的详细控制,方便用户定义独特的文档编辑UI界面。

     

     

    代码展示代码如下:

     

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
      <head>
        <title>编辑正文</title>  
    	<meta http-equiv="pragma" content="no-cache" />
    	<meta http-equiv="cache-control" content="no-cache"/>
    	<meta http-equiv="expires" content="0"/>    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"/>
    	<meta http-equiv="description" content="This is my page" />
    	<script language="javascript" for=WebOffice event="OnMenuClick(vIndex,vCaption)">
    	  if (vIndex==1){  
    	    WebOpenLocal();     //打开本地文件
    	  }
    	  if (vIndex==2){  
    	    WebSaveLocal();     //保存本地文件
    	  }
    	  if (vIndex==3){
    	    SaveDocument();     //保存正文到服务器上(不退出)
    	  }
    	  if (vIndex==11){
    	    SaveDocument();     //保存正文到服务器上
    	    webform.submit();   //然后退出
    	  }
    	  if (vIndex==13){  
    	    WebOpenPrint();     //打印文档
    	  }
    	</script>
    
    <script language=javascript>
    /*
    form表单名称:webform
    iWebOffice名称:WebOffice
    WebObject文档对象接口,相当于:
    
    如:webform.WebOffice.WebObject
    */
    //作用:显示操作状态
    function StatusMsg(mString){
      alert(mString);
    }
    //作用:载入iWebOffice
    function Load(){
      try{
        //以下属性必须设置,实始化iWebOffice
        webform.WebOffice.WebUrl="$!path/servlet/DocController?method=openDoc";        //WebUrl:系统服务器路径,与服务器文件交互操作,如保存、打开文档,重要文件
        webform.WebOffice.RecordID="$!recordID";            //RecordID:本文档记录编号
        webform.WebOffice.Template="";            //Template:模板编号
        webform.WebOffice.FileName="";            //FileName:文档名称
        webform.WebOffice.FileType=".doc";            //FileType:文档类型  .doc  .xls  .wps
        webform.WebOffice.UserName="银监会";            //UserName:操作用户名,痕迹保留需要
        webform.WebOffice.EditType="1,1";            //EditType:编辑类型  方式一、方式二  <参考技术文档>
                                                                //第一位可以为0,1,2,3 其中:0不可编辑;1可以编辑,无痕迹;2可以编辑,有痕迹,不能修订;3可以编辑,有痕迹,能修订;
                                                                //第二位可以为0,1 其中:0不可批注,1可以批注。可以参考iWebOffice2009的EditType属性,详细参考技术白皮书
        webform.WebOffice.MaxFileSize = 8 * 1024;               //最大的文档大小控制,默认是8M,现在设置成4M。
        webform.WebOffice.Language="CH";                        //Language:多语言支持显示选择   CH 简体 TW繁体 EN英文
        //webform.WebOffice.ShowWindow = true;                  //控制显示打开或保存文档的进度窗口,默认不显示
    
        webform.WebOffice.ShowToolBar="1";                      //ShowToolBar:是否显示工具栏:1显示,0不显示
        //以上为自定义工具栏按钮↑
    
        webform.WebOffice.ShowMenu="1";                         //控制整体菜单显示
        
        //以下为自定义菜单↓
        webform.WebOffice.AppendMenu("1","打开本地文件(&L)");
        webform.WebOffice.AppendMenu("2","保存本地文件(&S)");
        webform.WebOffice.AppendMenu("3","保存远程文件(&U)");
    	webform.WebOffice.AppendMenu("11","保存并退出(&E)");
        webform.WebOffice.AppendMenu("10","-");
        webform.WebOffice.AppendMenu("13","打印文档(&P)");
        //以上为自定义菜单↑
        webform.WebOffice.DisableMenu("宏(&M);选项(&O)...");    //禁止某个(些)菜单项
    
        //WebSetRibbonUIXML();                                  //控制OFFICE2007的选项卡显示		
        webform.WebOffice.WebOpen(); 
        webform.WebOffice.WebObject.Application.ActiveWindow.View = 3                           //打开该文档    交互OfficeServer  调出文档OPTION="LOADFILE"    调出模板OPTION="LOADTEMPLATE"     <参考技术文档>
        webform.WebOffice.ShowType=1;           //文档显示方式  1:表示文字批注  2:表示手写批注  0:表示文档核稿
       //                  //状态信息
      }catch(e){
        alert(e.description);                                   //显示出错误信息
      }
    }
    
    //作用:退出iWebOffice
    function UnLoad(){
      try{
        if (!webform.WebOffice.WebClose()){
          StatusMsg(webform.WebOffice.Status);
        }else{
          //StatusMsg("关闭文档...");
        }
      }catch(e){
        alert(e.description);
      }
    }
    
    //作用:打开文档
    function LoadDocument(){
      StatusMsg("正在打开文档...");
      if (!webform.WebOffice.WebOpen()){  	//打开该文档    交互OfficeServer的OPTION="LOADFILE"
         StatusMsg(webform.WebOffice.Status);
      }else{
         StatusMsg(webform.WebOffice.Status);
      }
    }
    
    //作用:保存文档
    function SaveDocument(){
      webform.WebOffice.WebUrl="$!path/servlet/DocController?method=saveDoc"; 
      //webform.WebOffice.WebSetMsgByName("MyDefine1","自定义变量值1");  //设置变量MyDefine1="自定义变量值1",变量可以设置多个  在WebSave()时,一起提交到OfficeServer中
      if (!webform.WebOffice.WebSave(true)){    //交互OfficeServer的OPTION="SAVEFILE"  注:WebSave()是保存复合格式文件,包括OFFICE内容和手写批注文档;如只保存成OFFICE文档格式,那么就设WebSave(true)
        //WebSaveAsHtml();
        StatusMsg(webform.WebOffice.Status);
        return false;
      }else{
      		
      		WebSaveAsHtml();
         StatusMsg(webform.WebOffice.Status);
         return true;
      }
    }
    
    //作用:刷新文档
    function WebReFresh(){
      webform.WebOffice.WebReFresh();
      StatusMsg("文档已刷新...");
    }
    
    //作用:打印文档
    function WebOpenPrint(){
      try{
        webform.WebOffice.WebOpenPrint();
        StatusMsg(webform.WebOffice.Status);
      }catch(e){alert(e.description);}
    }
    
    
    //作用:存为本地文件
    function WebSaveLocal(){
      try{
        webform.WebOffice.WebSaveLocal();
        StatusMsg(webform.WebOffice.Status);
      }catch(e){alert(e.description);}
    }
    
    //作用:打开本地文件
    function WebOpenLocal(){
      try{
        webform.WebOffice.WebOpenLocal();
        StatusMsg(webform.WebOffice.Status);
      }catch(e){alert(e.description);}
    }
    
    //作用:保存为HTML文档
    function WebSaveAsHtml(){
      webform.WebOffice.WebUrl="$!path/servlet/DocController?method=saveDoc"; 
     
      try{
        if (webform.WebOffice.WebSaveAsHtml())  	//交互OfficeServer的OPTION="SAVEASHTML"
        {
        	//SaveDocument();
        }
       // StatusMsg(webform.WebOffice.Status);
      }catch(e){alert(e.description);}
    }
    
    //作用:客户端和服务器端信息信息交互
    function WebSendInformation(){
      var info = window.prompt("请输入要传到服务器处理页面上的内容:","参数内容");
      if (info==null){return false}
    
      webform.WebOffice.WebSetMsgByName("COMMAND","SELFINFO");		//设置变量COMMAND="SELFINFO",用来在服务器端做判断,以进入处理自定义参数传递的代码。
      webform.WebOffice.WebSetMsgByName("TESTINFO",info);			//自定义的一个参数"TESTINFO",将info变量的信息设置到信息包中,以便传到后台。
      if (webform.WebOffice.WebSendMessage()){						//向后台发信息包。交互OfficeServer的OPTION="SENDMESSAGE"。
        info = webform.WebOffice.WebGetMsgByName("RETURNINFO");		//如果交互成功,接受服务器端返回的信息。
    
      }
      else{
        StatusMsg(webform.WebOffice.Status);
      }
    }
    </script>	
      </head>
      <body bgcolor="#ffffff" onLoad="Load()" onUnload="UnLoad()">  <!--引导和退出iWebOffice-->
        <form name="webform" action="" method="post">
        	<center>
        		<input type="button" id="btnret" value="保存" οnclick="SaveDocument();"/>  
        		<input type="button" id="btnret" value="返回" οnclick="javascript:history.go(-1);" /> 
        	</center> 	
        	<script type="text/javascript">
    	    	var str = '';
    			str += '<object id="WebOffice" width="100%" height="100%"  classid="clsid:8B23EA28-723C-402F-92C4-59BE0E063499" codebase="$!path/main/cms/setup/iWebOffice2006.cab#version=7,6,0,2">';
    			str += '</object>';
    			document.write(str);
        	</script>
        	
        </form>
      </body>
    </html>


     

    后台保存的代码:

    	private void saveAsHtml(HttpServletRequest request, HttpServletResponse response,WebFile webFile,IDocEntity docEService)
    	{
    		String mOption = "";			
    		String mHtmlName = "";			
    		String mDirectory = "";
    		String fileType = "";
    		//文件保存路径		String filePath = docEService.getFilePath();
    		LoadStartDataManagerImpl loadStartDate = (LoadStartDataManagerImpl)ServiceFactory.findBean("loadStartData");
    		String filePath=loadStartDate.getBaseUrl()+loadStartDate.getKindeditorImagesPath();
    		String docPath=loadStartDate.getBaseUrl()+loadStartDate.getKindeditorFilePath();
    		fileType = webFile.GetMsgByName("FILETYPE").trim();
    		String mRecordID = webFile.GetMsgByName("RECORDID").trim();			//要对recordID进行判读
    		DocEntity docE = docEService.getDocEByID(mRecordID);
    		if (request.getMethod().equalsIgnoreCase("POST")) {			
    			if (webFile.GetMsgByName("DBSTEP").trim().equalsIgnoreCase("DBSTEP")) {
    				mOption = webFile.GetMsgByName("OPTION").trim();	
    				
    				//保存文档.doc
    				if (mOption.equalsIgnoreCase("SAVEFILE")) {
    					if (!(new File(docPath)).isDirectory())
    						(new File(docPath)).mkdirs();
    					webFile.MsgTextClear();
    					if (webFile.MsgFileSave(docPath+"/"+mRecordID+fileType)) {
    						webFile.MsgError("");
    						webFile.SetMsgByName("STATUS", "����HTML�ɹ�!");
    					} else {
    						webFile.MsgError("保存失败����HTMLʧ��!");
    					}
    					webFile.MsgFileClear();
    					webFile.MsgTextClear();
    				}
    				
    				//保存为html文档
    				if (mOption.equalsIgnoreCase("SAVEASHTML")) {
    					mHtmlName = webFile.GetMsgByName("HTMLNAME").trim();
    					mDirectory = webFile.GetMsgByName("DIRECTORY").trim();
    					if (!(new File(filePath)).isDirectory())
    						(new File(filePath)).mkdirs();
    					webFile.MsgTextClear();					
    					if (mDirectory.trim().equalsIgnoreCase(""))
    					{	
    						webFile.MakeDirectory(filePath);
    						//保存html文件																	
    						
    						if(docE == null)
    						{
    							docE = new DocEntity();
    							docE.setDocId(mRecordID);
    						}											
    						if (docEService.addDocE(MsgFileSaveH(docE,webFile))){								
    							File docFile = new File(filePath+"/"+ docE.getDocId()+".files");
    							try {
    								FileTools.deleteDir(docFile);
    							} catch (IOException e) {
    								e.printStackTrace();
    							}
    							webFile.MsgError("");
    						} else {
    							webFile.MsgError("����HTMLʧ��!");
    						}
    					}
    					else {
    						//保存图片文件
    						filePath = filePath +"/"+ mDirectory;
    						webFile.MakeDirectory(filePath);
    						
    						if (webFile.MsgFileSave(filePath + "/" + mHtmlName)) {
    							webFile.MsgError("");
    							webFile.SetMsgByName("STATUS", "����HTML�ɹ�!");
    							
    						} else {
    							webFile.MsgError("����HTMLʧ��!");
    						}
    					}
    					webFile.MsgFileClear();
    				}
    				
    			} else {
    				webFile.MsgError("�ͻ��˷�����ݰ����!");
    				webFile.MsgTextClear();
    				webFile.MsgFileClear();
    				
    			}
    		} else {
    			webFile.MsgError("��ʹ��Post����");
    			webFile.MsgTextClear();
    			webFile.MsgFileClear();
    		}
    		SendPackage(response, webFile);
    	}


     


    运行效果如下:

     

    の

     


     

     


     

    展开全文
  • java在线打开PDF文档

    千次阅读 2018-05-09 15:31:38
    步骤一:(涉及到的工具) 访问:... 解压PageOffice 开发包,打开“集成文件”目录,拷贝“WEB-INF\lib”目录中的pageoffice4.4.0.2.jar到自己项目的“WEB-INF\lib”目录 2. 参考“集成文件”文件夹中的 ...

    步骤一:(涉及到的工具)

      访问:http://www.zhuozhengsoft.com/dowm/,从官网下载PageOffice for Java。

    步骤二:(配置工程)

      1. 解压PageOffice 开发包,打开“集成文件”目录,拷贝“WEB-INF\lib”目录中的pageoffice4.4.0.2.jar到自己项目的“WEB-INF\lib”目录

      2. 参考“集成文件”文件夹中的 web.xml文件,配置一下自己 Web项目中的web.xml文件,也可以直接把下面的这段配置添加到自己的web.xml中;

    复制代码

     1     <!-- PageOffice Begin --> 2     <servlet> 3         <servlet-name>poserver</servlet-name> 4         <servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class> 5     </servlet> 6     <servlet-mapping> 7         <servlet-name>poserver</servlet-name> 8         <url-pattern>/poserver.zz</url-pattern> 9     </servlet-mapping>10     <servlet-mapping>11         <servlet-name>poserver</servlet-name>12         <url-pattern>/sealsetup.exe</url-pattern>13     </servlet-mapping>14     <servlet-mapping>15         <servlet-name>poserver</servlet-name>16         <url-pattern>/posetup.exe</url-pattern>17     </servlet-mapping>18     <servlet-mapping>19         <servlet-name>poserver</servlet-name>20         <url-pattern>/pageoffice.js</url-pattern>21     </servlet-mapping>22     <servlet-mapping>23         <servlet-name>poserver</servlet-name>24         <url-pattern>/jquery.min.js</url-pattern>25     </servlet-mapping>26     <servlet-mapping>27         <servlet-name>poserver</servlet-name>28         <url-pattern>/pobstyle.css</url-pattern>29     </servlet-mapping>30     <!-- PageOffice End-->
    

    复制代码

      3. 在显示文件列表的页面(比如:doclist.jsp)添加pageoffice.js文件的引用和打开文件的超链接“在线打开PDF”:

    复制代码

    <script type="text/javascript" src=" jquery.min.js"></script> 
    <script type="text/javascript" src=" pageoffice.js" id="po_js_main"></script>......<a href="javascript:POBrowser.openWindowModeless(/pdf.jsp','width=1200px;height=800px;');">在线打开PDF</a>
    

    复制代码

      4. 在调用PageOffice产品的页面(比如:pdf.jsp)添加 import 包:com.zhuozhengsoft.pageoffice.*

      5. 编写PageOffice的调用代码,在线打开文件(比如:服务器D盘根目录下的test.pdf):

    PDFCtrl poCtrl1 = new PDFCtrl(request);
    poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); 
    poCtrl1.webOpen("d:\\test.pdf");
    

      6.在 html代码的 body中需要出现office 界面的位置插入下面的代码:

    <%=poCtrl1.getHtmlCode("PDFCtrl1")%>
    

      7. 启动运行项目,访问文件列表的页面(比如:doclist.jsp),点击“在线打开PDF”的超链接即可查看在线打开编辑保存PDF文件的效果。

    参考示例:

      1. 部署PageOffice示例:拷贝PageOffice开发包中的 Samples4 文件夹到 Tomcat 的 Webapps 目录下,访问:http://localhost:8080/Samples4/index.html
      2. 参考 基础功能示例:二、4、在线打开PDF文件

    展开全文
  • Office控件

    千次阅读 2013-10-17 15:32:19
    优道Office文档控件使用帮助 功能概述运行环境网页中嵌入控件控件属性控件方法控件事件其它 功能概述 优道Office文档控件(UUDoc Office Document Control)是一款简单易用的Office文档控件产品,能够在...

    优道Office文档控件使用帮助

    功能概述

    优道Office文档控件(UUDoc Office Document Control)是一款简单易用的Office文档控件产品,能够在浏览器和桌面应用程序中直接编辑Word、Excel、PPT、WPS、金山电子表格等文档并保存到Web服务器当中。和其它的Office文档控件不同,本控件以简单易用为设计目标,只提供最常用的文档查看、编辑、保护锁定、痕迹控制、保存回服务器等功能,因此本控件可以做得尽可能的小巧和易用。

    运行环境

    服务器端:支持Windows和Linux操作系统,支持任何的服务器编程语言,例如asp,asp.net,php,java,python,ruby等

    支持使用HTTP、HTTPS、FTP协议从服务器远程加载和保存文档,支持服务器身份验证

    控件客户端支持的操作系统:WindowsXP/2003/2008/Vista/Win7/Win8

    桌面开发支持的编程语言:VB、CSharp 、VB.NET、Delphi、C++等

    支持32位及64位操作系统

    支持嵌入到基于ActiveX技术的IE浏览器和桌面应用程序当中

    网页中嵌入控件

    您可以参考我们提供的演示文件在网页中嵌入优道Office文档控件:

    控件的PlogId为:UdOffice.Control

    控件的ClassId为:07100CA2-3057-4BFD-B79E-9439F3859D00

       
        <object id="udOfficeCtl" width="100%" height="600"
             classid="CLSID:07100CA2-3057-4BFD-B79E-9439F3859D00"
             codebase="UdOffice.ocx#version=2,3,0,0">
             <param name="Menubar" value="0" />    
             <param name="License" value="" />
        </object>
    
        

    属性的设置示例:

       
        <script type="text/javascript">
            //根据复选框判断是否显示工具条
            function f_toolbars() {
                ctl.Toolbars = document.getElementById("chkToolbars").checked
            }
        </script>
        

    方法的调用示例:

    
        <script type="text/javascript"> 
    	//在线打开一个Excel文档
    	function f_openXls() {
                ctl.OpenFromURL("sample.xls","xls");
            }
        </script>
        

    事件的捕捉示例:

    
        <script type="text/javascript" event="OnDocumentOpened(file,doc)" for="udOfficeCtl">  
            document.getElementById("info").innerHTML = "OnDocumentOpened事件,文档已打开 "
        </script>
        

    控件属性

    属性名称 类型 属性说明
    ActiveDocument Object 获取当前活动文档对象,例如Word文档对象、Excel文档对象等
    Toolbars 布尔 获取或设置是否显示Office工具条
    ModalState 布尔 获取或设置控件是否处于模态状态
    BorderStyle 整数 获取或设置控件的边框样式
    0:无边框;1:扁平边框;2:3D模式边框;3:不太明显的3D边框
    BorderColor 整数 获取或设置控件的边框颜色
    BackColor 整数 获取或设置控件的背景色
    ForeColor 整数 获取或设置控件的前景色
    Menubar 布尔 获取或设置是否显示菜单栏
    HostName 字符 获取或设置复合文档所嵌入到的的容器应用名称(宿主名)
    DocumentFullName 字符 获取包含路径的文档文件全名
    IsReadOnly 布尔 获取当前文档是否是以只读方式打开
    IsDirty 布尔 获取文档是否已经被修改或需要进行保存
    LockServer 布尔 获取或设置是否已锁定当前嵌入服务器以保持运行。
    ActivationPolicy 整数 获取或设置文档激活方式
    0:默认方式;1、应用未激活时保持激活状态;2:失去焦点时组件变成未激活状态;4:组件未激活时文档对象未激活
    FrameHookPolicy 整数 获取或设置使用框架挂钩的方式,框架挂钩主要用于处理文档焦点的状态
    0:正常方式;1:在第一次打开时设置;2:每次重新设置(Excel文档需要设置为这个);-1:禁止使用挂钩
    MenuAccelerators 布尔 获取或设置是否允许文档菜单合并到控件菜单栏中
    EventsEnabled 布尔 获取或设置是否允许触发事件
    DocumentName 字符 返回文档名称(不包括路径)
    WebFileName 字符 获取或设置默认定义的文件名称(用于从程序读取文件有时并没有文件名的情况)
    WebUserName 字符 获取或设置默认的文档用户名(记录到文档属性中的文档作者)
    WebCodePage 整数 获取或设置字符编码所使用的代码页号,非UTF8编码时使用
    IsUtf8Url 布尔 获取或设置是否使用UTF8编码的URL地址,否则按指定的代码页进行编码
    IsUtf8Data 布尔 获取或设置是否使用UTF8编码格式进行数据传输,否则按指定的代码页进行编码。
    AllowCopy 布尔 获取或设置是否允许复制文档内容
    FileNew 布尔 获取或设置是否启用菜单及工具条中的“新建”功能
    FileOpen 布尔 获取或设置是否启用菜单及工具条中的“打开”功能
    FileClose 布尔 获取或设置是否启用菜单及工具条中的“关闭”功能
    FileSave 布尔 获取或设置是否启用菜单及工具条中的“保存”功能
    FileSaveAs 布尔 获取或设置是否启用菜单及工具条中的“另存为”功能
    FilePrint 布尔 获取或设置是否启用菜单及工具条中的“打印”功能
    FilePrintPreview 布尔 获取或设置是否启用菜单及工具条中的“打印预览”功能
    FilePageSetup 布尔 获取或设置是否启用菜单或工具条中的“页面设置”
    DocType 整数 获取控件中当前文档的类型:
    -1:未知;0:Doc;1:Docx,2:Docm,3:Xls;4:Xlsx;5:Xlsb;6:Xlsm;
    7:Ppt;8:Pptx;9:Pptm;10:Vsd;11:Mpp;12:Wps;13:Et;14:Wpp
    DocSize 整数 获取当前文档的字节数
    OleAutoConvert 布尔 获取或设置是否自动进行OLE对象转换,可以防止调用其它软件造成问题
    License 字符 获取或设置控件的注册码信息

    控件方法

    方法名称 参数说明 方法说明
    void CreateNew(string progId) progId:文档类型的标识符,可以用Word.Document、Excel.Sheet、PowerPoint.Slide等,这里也支持用文档的扩展名,例如doc、xls、ppt等 通过ProgId或文档文件扩展名来创建一个新的文档
    void CreateFromTemplate(
    string template,string progId)
    template:模板文件路径,支持本地文件和网络路径,支持相对路径
    progId(可选):文档的类型标识符,也支持文档扩展名
    通过模版文件来创建一个新的文档
    void OpenFromFile(string file,
    bool readOnly,
    string progId)
    file:文档文件路径
    readOnly(可选):是否以只读方式打开,默认为false
    progId(可选):文档类型的标识符或扩展名
    从文件打开一个文档
    void OpenFromURL(string url,
    string progId)
    url:网络文件或服务器程序地址,支持相对路径方式
    progId(可选):文档类型的标识符或扩展名
    从指定的URL打开一个文档
    void SaveToFile(string file,
    bool overwrite)
    file(可选):要保存到的文件路径
    overwrite(可选):如果文件存在是否覆盖
    保存文档到指定路径或它的原始位置
    void SaveToURL(string url,
    string fileFieldName,
    string parameters,
    string fileName)
    url:提交到的服务器处理程序地址
    fileFieldName(可选):提交使用的文件域名称,相当于表单中input的name值
    parameters(可选):以&分隔的附加参数,例如"name=abc&age=30"
    fileName(可选):所提交文档的文件名称,相当于<input type="file" >选中的文件名
    使用HTTP协议将文件保存到URL地址
    void SetServerUser(string username,
    string password)
    username:服务器身份验证的用户名
    password:服务器用户登录密码
    如果需要,设置服务器身份验证的用户名和密码
    void Close() 关闭当前打开的文档
    void ShowDialog(int dlgType) dlgType:要显示的对话框类型:
    0:新建;1:打开;2:保存;3:另存为;4:打印;5:页面设置;6:文档属性
    显示一个用户指定操作类型的模态对话框。
    void PrintOut(bool promptUser,
    string printerName,
    int copies,
    int fromPage,
    int toPage,
    string outputFile)
    promptUser:是否提示用户
    printerName:打印机名称
    copies:打印份数
    fromPage:打印起始页
    toPage:打印终止页
    outputFile:输出文件名称
    使用指定的打印机及打印设置打印当前文档
    void PrintPreview() 进入打印预览模式(要文档支持)
    void PrintPreviewExit() 退出打印预览模式
    void Protect(string password) password(可选):文档保护密码,为空使用随机密码 文档进入保护模式
    void UnProtect(string password) password(可选):文档保护密码 文档退出保护模式
    string GetVersion() 获取控件产品的当前版本号

    备注:Progid 是在 (CLSID) 中使用的一个可读的版本的类标识符,用于标识 COM/ActiveX 对象,例如Word.Document、Excel.Sheet、PowerPoint.Slide等,为了方便使用,本控件也支持doc、docx、xls、xlsx、ppt、pptx等文件扩展名的使用方式

    控件事件

    事件名称 参数说明 事件说明
    OnFileCommand(int item,bool cancel) item:选择的菜单项:
    0:新建;1:打开;2:关闭;3:保存;4:另存为;
    5:打印;6:页面设置;7、文档属性;8:打印预览

    cancel:为true取消执行
    用户选择文件菜单后触发事件
    OnDocumentOpened(string file,object document) file:所打开的文件名
    document:打开或创建的当前文档对象
    打开或新建文档时触发事件
    OnDocumentClosed() 文档关闭时触发事件
    BeforeDocumentClosed(object document,bool cancel) document:当前文档对象
    cancel:为true时取消执行
    文档关闭之前触发事件
    OnActivationChange(bool fGoingActive) fGoingActive:是否进入活动状态 组件获得或失去活动状态时触发事件
    OnPrintPreviewExit() 打印预览关闭时触发事件
    BeforeDocumentSaved(object document,
    string location,bool cancel)
    document:当前文档对象
    location:文档要保存到的路径名
    cancel:为true时取消执行
    文档保存之前触发事件
    OnSaveCompleted(object document,
    string docName,string fullFileLocation)
    document:当前文档对象
    docName:文档名称
    fullFileLocation:文档保存路径全名
    文档保存成功时触发事件
    OnDownload(long downloadSize,long totalSize) downloadSize:当前已经下载的数据字节大小
    totalSize:总共需要下载的文档字节大小
    从服务器下载文档时触发事件
    OnBeforePost(object document,bool cancel) document:当前文档对象
    cancel:为true时取消执行
    文档提交服务器之前触发事件
    OnPostCompleted(string responseText) responseText:从服务器返回的文本信息 文档保存回服务器后触发事件

    其它

    • 关于优道:珠海市优道信息科技有限公司是一家致力于文档管理、数字版权保护和移动办公产品研发和推广的科技公司。
    • 优道网站:www.uudoc.com
    • 优道服务热线:0756-2132796,技术支持邮件:support@uudoc.com,技术支持QQ:13063574
    展开全文
  • Total Command使用指南

    千次阅读 2012-06-12 18:06:11
    Total Command  功能强大的全能文件管理器(简称 TC)。...一般的文件操作,如搜索、复制、移动、改名、删除等功能应有尽有,更有文件内容比较、同步文件夹、批量重命名文件、分割合并文件、创建/检查文件校验
  • A ACE:Ace压缩档案格式 ACT:Microsoft office助手文件 AIF,AIFF:音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式 ANI:Windows系统中的动画光标 ARC:LH ARC的压缩档案文件 ARJ:...
  • 各种格式的文件用什么软件打开

    千次阅读 2008-03-14 15:44:00
    各种格式的文件用什么软件打开!(1) .aiff 声音文件 Windows media Player .!!! Netants 暂存文件 Netants .ani 动画鼠标 .arj 压缩文件 ARJ .avi 电影文件 Windows media P
  • 各种气象数据下载地址推荐

    万次阅读 多人点赞 2017-12-20 17:45:37
    1.我也下载了,好像不能超过500M每次,100个站。...2 http://www.esrl.noaa.gov/psd/data/gridded/reanalysis/网站可以下载气象数据,.nc格式,同样不会用,不会打开,网上搜到.nc查看方法(http://blog.163
  • 我只是搬运工。。。 1.我也下载了,好像不能超过500M每次,100个站...2 http://www.esrl.noaa.gov/psd/data/gridded/reanalysis/网站可以下载气象数据,.nc格式,同样不会用,不会打开,网上搜到.nc查看方法(http:...
  • 在Ubuntu18.04中安装wps并且解决文字字体缺失的问题 在ubuntu中安装wps对于很多人来说会比较的简单,但是对于像我一样刚刚接触ubuntu的计算机小白来说,也并非很简单,安装的过程中也遇到了一些问题。...
  • jsp页面链接下载文件

    千次阅读 2016-11-07 15:44:44
    jsp中实现文件下载的最简单的方式是在网页上做超级链接,如: href= “music/abc.mp3”点击下载。但是这样服务器上的目录资源会直接...2、采用文件流输出的方式下载。 1、采用RequestDispatcher的方式进行: respon
  • jsp 下载 服务端的文件到本地

    万次阅读 2013-07-03 18:52:41
    一、list页面的js,点击list列表下面的...function downloadDoc(filePath,fileName){ var path = filePath+fileName; var contextLength = ""; var sp = path.substring(contextLength.length,path.length); docum
  • 我只是搬运工。。。 1.我也下载了,好像不能超过500M每次,100个站...2 http://www.esrl.noaa.gov/psd/data/gridded/reanalysis/网站可以下载气象数据,.nc格式,同样不会用,不会打开,网上搜到.nc查看方法(http:/...
  • ABAP function函數總結

    万次阅读 2011-05-05 12:26:00
    函数名 描述 SD_VBAP_READ_WITH_VBELN 根据销售订单读取表vbap中的信息 EDIT_LINES 把READ_TEXT返回的LINES中的行按照TDFORMAT=“*”重新组织 VIEW_MAINTENANCE_CALL 维护表视图 函数名 ...
  • 文件后缀和相应的文件类型,打开方法参考大全  原帖:http://xidong.net/File001/File_4586.html 如果你不知怎样判断文件的后缀, 请参看: 什么是文件的后缀名?如果得知文件的后缀? 扩展名 文件类型 打开方式 ....
  • 中国气象局加入了国际条约,必须向国际组织免费提供数据,这些数据被美国免费发布在网站上,不需要注册更不要钱,咱们就去美国下载免费数据好了。   看这些只知道花纳税人钱巧立名目,买设备、搞监测、上项目而不...
  • Hacking the hacker: How a consultant shut down a malicious user黑掉Hacker:一个顾问如何关闭恶意用户by John Verry 作者:John Verry翻译:endurerKeywords: Business strategies and functions | Diagnostics ...
  • 完了还试了下其他的程序,如foxmail,photoshop,office2007,也没有遇到过失败的,运行的也非常完美,整个过程,最主要的可能还是字体配置那一块,配好了,接下去的安装就爽滑到底了。 不过本教程不能保证您也...
  • 推荐一些Linux下常用的软件

    万次阅读 2013-09-30 11:41:41
    Linux下有一些常用的工具,我认为不错,给大家推荐一下。 开发工具: 我使用Eclipse开发Linux下的C程序,Python程序,Java程序,OCaml程序等。Eclipse有丰富的插件,可以支持绝大多数编程语言。...
  • Linux入门教程

    万次阅读 多人点赞 2018-03-11 21:05:28
    Linux 入门教程 Linux简介 严格的来讲,Linux 不算是一个操作系统,只是一个 Linux 系统中的内核,即计算机软件与硬件通讯之间的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。...
1 2 3 4 5 ... 20
收藏数 1,949
精华内容 779
关键字:

pageoffice打开ftp文件