pageoffice 开发笔记
开发环境:vs2015,mvc,razor
pageoffice版本:Server-Version=3.2.0.1 OCX-Version=2,0,4,6
开发模式:pageofficeLink方式
选用这么种模式的原因是:插件“谷歌在2015.4.15做了一次比较大的升级,内容是禁止了所有的插件”
1. 双击运行Setup.exe安装服务器组件。
2. 第一次运行包含PageOfficeLink组件的网页时,会弹出注册对话框,请输入注册信息注册。
3. 如果新建网站或集成PageOffice到您现有的网站里:
1) 双击运行Setup.exe安装服务器组件;
2) 拷贝“集成文件”目录下的“pageoffice”文件夹到您自己网站的根目录下;
3)前台:
第一种:<a href='@PageOffice.PageOfficeLink.OpenWindow("路径+参数", "width=1200px;height=1000px;")' ></a>
第二种:实例化的时候将参数设置为属性,调用的时候,只需要将属性取出后,将当前文档链接设置为该属性即可,具体如下:
<li url="@PageOffice.PageOfficeLink.OpenWindow("路径+参数", "width=1200px;height=1000px;")" onclick="openDoc(this)"></li>
js:document.location.href=$(obj).attr(url);
第三种:可以通过在控制器里拼接好a标签,在前台直接调用
后台:
主要分为打开文档、保存文档
public ActionResult Contact()
{ Page page = new Page();
string controlOutput = string.Empty;
PageOffice.PageOfficeCtrl pc = new PageOffice.PageOfficeCtrl();
pc.SaveFilePage = "/Home/SaveDoc";//设置保存时访问的路径
pc.ServerPage="/pageoffice/server.aspx";//pageoffice服务器页面
pc.WebOpen("/test.doc", PageOffice.OpenModeType.docAdmin,"s");//参数一:文档路径;参数二:文档打开模式;参数三:操作当前文档的用户名。一般来说,UserName 应该采用登录到您的Web应用程序的当前用户的名称
page.Controls.Add(pc);
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
Server.Execute(page, htw, false); controlOutput = sb.ToString();
}
}
ViewBag.EditorHtml = controlOutput;//控件字符串 return View();
}
打开文档
string filePath = Server.MapPath("/test.doc");
PageOffice.FileSaver fs = new PageOffice.FileSaver();
fs.SaveToFile(filePath);
fs.Close();
后台:在打开文档的时候设置 pc.AddCustomToolButton("我的自定义按钮", "前台javascript调用函数名称()", 1(按钮样式));
前台:在打开文档的视图中定义好相应的js函数即可实现调用。
需要特别说明的是:在前台调用的过程中需要PageOffice控件的iD时,需要在打开文档时设置控件的ID属性,见右侧代码: pc.ID = "PageOfficeCtrl1";
插件属性见该插件的帮助文档即可。
pageoffice 开发笔记的更多相关文章
- [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出【转载自:酷小孩】
原文地址:http://www.cnblogs.com/babycool/p/3199158.html 今天打算用VisualStudio2012做一个js效果页面测试的时候,打开VS2012新建项目 ...
- EasyUI 开发笔记(二)
接上篇 :EasyUI 开发笔记(一) (http://www.cnblogs.com/yiayi/p/3485258.html) 这期就简单介绍下, easyui 的 list 展示, 在easy ...
- EasyUI 开发笔记(一)
由于某些原因,在公司做的后台需要改成类似于Ext.js 形式的后台,主要看好其中的 框架布局,以及tab开页面和弹出式内部窗体. 后来看看,改成EasyUI,较Ext.js 库小很多,也便于公司的初级 ...
- [Openwrt 项目开发笔记]:Openwrt平台搭建(一)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 最近开始着手进行Openwrt平台的物联网网关设 ...
- Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例
引言 Cordova(PhoneGap)采用的是HTML5+JavaScript混合模式来开发移动手机APP,因此当页面需要获取手机内部某些信息时(例如:联系人信息,坐标定位,短信等),程序就需要调用 ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
- 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新
今天在将一个项目中使用存储过程的遗留代码迁移至新的架构时,遇到了一个问题——如何用EF实现数据库中指定字段的更新(根据UserId更新Users表中的FaceUrl与AvatarUrl字段)? 原先调 ...
- Lucene/Solr搜索引擎开发笔记 - 第1章 Solr安装与部署(Jetty篇)
一.为何开博客写<Lucene/Solr搜索引擎开发笔记> 本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/ ...
- [openwrt 项目开发笔记]: 传送门
“Openwrt 项目开发笔记”系列传送门: [Openwrt 项目开发笔记]:Openwrt平台搭建(一) (2014-07-11 00:11) [Openwrt 项目开发笔记]:Openwrt平台 ...
随机推荐
- MVC+Front Controller
MVC+Front Controller 在我前面一篇博文<逃脱Asp.Net MVC框架的枷锁,使用Razor视图引擎>发表之后,很多人关心,脱离了之后怎么办?那么这可以说是它的续篇了. ...
- Dispose模式
Dispose模式 Dispose模式是.NET中很基础也很重要的一个模式,今天重新复习一下相关的东西并记录下来. 什么是Dispose模式? 什么时候我们该为一个类型实现Dispose模式 使用Di ...
- hdu 1507
求能出售多少个1*2的矩形,,将原图染色,(i+j)%2==0的染白色,其余为黑色, 求白色跟黑色的最大匹配 #include<stdio.h> #include<string.h& ...
- jsp传值乱码解决办法
在jsp中,我们经常从数据库读取数据返回客户端,但我们常常在制作时出现乱码现象,所以我们可以用<%request.setCharacterEncoding("UTF-8"); ...
- Integer.parseInt(String s, int radix)方法介绍(修正版)
先来说明一下Integer.parseInt(String s, int radix)的功能. Integer.parseInt(String s, int radix)就是将整数字符串s(radix ...
- icon 图标下载
1. http://www.easyicon.net/ 2.http://www.iconpng.com/
- Magnum Kuernetes源码分析(一)
Magnum版本说明 本文以magnum的mitaka版本代码为基础进行分析. Magnum Kubernetes Magnum主要支持的概念有bay,baymodel,node,pod,rc,ser ...
- properties + IO 读取配置文件
1.项目目录树 2.配置文件config.properties username = sushe password = sushe url = jdbc:mysql://172.16.100.10:3 ...
- Python 购物车----之用户部分
知识点: 文件读,写操作,if 判断, for 循环 salary = input("输入你的工资:") bought_list = [] product_list = {} wi ...
- CodeForces 213B Numbers
$dp$,组合数. $dp[i][j]$表示只用数字$i$,$i+1$,$i+2$......,$9$,凑成长度为$j$的并且数字$i$到$9$符合要求的方案数.只要枚举数字$i$用几个就可以转移了. ...