文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器
1、在线预览Word文件
(1) 运行环境
① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox)
② IE工具栏-Internet 选项:将www.ntko.com加入到浏览器的可信站点中,不启用保护模式,并将HTTPS验证取消
③ 如果是开发人员首次使用文档控件,需要将控件手动注册控件,获取控件的版本clisid以及版本信息Version(如果程序已经开发完则可以忽略此步骤)
(2) 创建一个加载控件的JS文件,用户只需修改控件版本号Version,classid,cab包路径,以及添加授权即可。具体可访问http://dev.ntko.com:8000/查看
① JS文件代码如下:(-1表示TRUE,0表示FALSE)
////----在线编辑word并保存
document.write('<object id="TANGER_OCX" classid="clsid:A64E3073-2016-4baf-A89D-FFE1FAA10EC0"');
document.write('codebase="NTKO/OfficeControl.cab#version=5,0,3,0" width="100%" height="100%"> ');
document.write('<param name="Toolbars" value="-1"> '); // 工具栏
document.write('<param name="Menubar" value="0"> '); //菜单栏
document.write('<param name="CustomToolBar" value="-1"> ');
document.write('<param name="Titlebar" value="-1"> '); //标题栏
document.write('<param name="Caption" value="华测计量技术有限公司专用">');//标题内容
document.write('<param name="IsUseControlAgent" value="-1"> '); //是否是控制请求数据,其他请他不允许
document.write('<param name="IsNoCopy" value="0"> '); //0不允许复制
document.write('<param name="IsDirectConnect" value="-1"> ');
document.write('<param name="DefaultOpenDocType" value="1"> ');//1表示只能打开word文档
document.write('<param name="FileOpen" value="0"> ');
document.write('<param name="FileNew" value="0"> ');
document.write('<param name="FileSave" value="0"> ');
document.write('<param name="FileSaveAs" value="0"> ');
document.write('<param name="FilePrint" value="0"> ');
document.write('<param name="FilePrintPreview" value="0"> ');
document.write('<param name="ProductCaption" value="Office Anywhere 3.0"> ');
document.write('<param name="ProductKey" value="65F867689D7FF5CD02FBE4AA23764306F715A9E2">');
document.write('<SPAN STYLE="color:red">不能装载NTKO OFFICE文档控件。请在检查浏览器的选项中检查浏览器的安全设置。</SPAN> ');
document.write('</object> ');
① View代码如下:
@{
ViewBag.Title = "Word";
}
<h2>Index</h2>
<html>
<head>
<title>NTKO Office文档控件预览Word修改保存回服务器演示示例</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#ffffff" ;>
<p>
<span>针对Word书签的操作</span>
<button onclick="AddPicToWord()">添加图片</button>
<button onclick="ReplacePicToWord()">替换图片</button>
<button onclick="AddTextToWord()">插入文字</button>
<button onclick="ReplaceTextToWord()">替换指定的文字</button>
<input type="submit" value="保存文档" id="_upload">
</p>
<script src="~/Scripts/ntkoGenObj.js"></script>
</body>
</html>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script language="javascript">
//ntko控件初始化完成后才进行文档的加载
$(function () {
inIt();
});
function inIt() {
if (TANGER_OCX == null) {
alert("NTKO OFFICE文档控件未能正确装载。请在本页面装载时窗口上方出现的提示条上点击装载ActiveX控件,并在随后出现的安装ActiveX的对话框中选择‘是’。");
return;
}
OpenFile();
}
//以文件流的形式加载文件
function OpenFile() {
TANGER_OCX.BeginOpenFromURL('@Url.Action("ReturnFileStream", "WordView")', true);
}
//保存修改后的文件回服务器
$("#_upload").click(function () {
var list = TANGER_OCX.ActiveDocument.BookMarks;//书签列表
alert("书签数:" + list.Count);
TANGER_OCX.SaveToURL('@Url.Action("uploadFile", "WordView")', "TANGER_OCX", "", "", "", true);
});
var bookmarkname = "审核人";
var bookmarkname2 = "批准人";
//添加图片
function AddPicToWord() {
//书签列表
var list = TANGER_OCX.ActiveDocument.BookMarks;
alert("书签数为:" + list.Count);
//判断书签是否存在
if (TANGER_OCX.ActiveDocument.BookMarks.Exists(bookmarkname) && TANGER_OCX.ActiveDocument.BookMarks.Exists(bookmarkname2)) {
alert("书签存在,开始插入审核人签名");
TANGER_OCX.ActiveDocument.Application.Selection.GoTo(-1, 0, 0, bookmarkname);//跳转指定书签位置
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/william.jpg")", true, 0, 0, 1, 100, 1);//添加图片,true是以浮动图片插入,false就相当于嵌入在光标处了 ---插入正确
//AddIdtoPicture(bookmarkname);//为图片添加唯一标识(暂时用不到)
alert("书签存在,开始插入批准人签名");
TANGER_OCX.ActiveDocument.Application.Selection.GoTo(-1, 0, 0, bookmarkname2);//跳转指定书签位置
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/jimly.jpg")", true, 0, 0, 1, 100, 1);//添加图片,true是以浮动图片插入,false就相当于嵌入在光标处了 ---插入正确
alert("图片添加成功");
}
}
//为图片列表中图片添加唯一标识(图片的AlternativeText属性可以设置为书签的名字name)
function AddIdtoPicture(name) {
alert("开始添加唯一标识" + name);
var shapes = TANGER_OCX.ActiveDocument.Shapes;
for (var i = 1; i <= shapes.Count; i++) {
if (shapes(i).Type == 13) {
if (shapes(i).AlternativeText == "") {
alert(name);
shapes(i).AlternativeText = name;
}
}
}
}
//判断书签是否存在,然后删除图片,替换图片
function ReplacePicToWord() {
var list = TANGER_OCX.ActiveDocument.BookMarks;
alert("书签数为:" + list.Count);
for (var i = 1; i <= list.Count; i++) {
var markname = TANGER_OCX.ActiveDocument.BookMarks(i).Name;
alert(markname);
}
if (TANGER_OCX.ActiveDocument.BookMarks.Exists(bookmarkname)) {
alert("书签存在,开始替换审核人签名");
var shapes = TANGER_OCX.ActiveDocument.Shapes;
alert("图片数量" + shapes.Count);
for (var i = 1; i <= shapes.Count; i++) {
alert(shapes(i).Type + shapes(i).AlternativeText);
//根据图片的类型以及AlternativeText属性(书签的名字来确定图片)
if (shapes(i).Type == 13 && shapes(i).AlternativeText == "william") {
shapes(i).Delete();
alert("删除成功");
}
}
TANGER_OCX.ActiveDocument.Application.Selection.GoTo(-1, 0, 0, bookmarkname);//跳转指定书签位置
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/jimly.jpg")", true, 0, 0, 1, 100, 1);//添加图片,true是以浮动图片插入,false就相当于嵌入在光标处了 ---插入正确
} else {
alert("书签不存在,请添加");
}
}
</script>
<script>
var bookName = "审核时间";
//在书签位置设置书签值
function AddTextToWord() {
if (TANGER_OCX.ActiveDocument.BookMarks.Exists(bookName)) {
//判断书签是否存在
TANGER_OCX.SetBookmarkValue(bookName, "2018/03/13");
//添加书签值
TANGER_OCX.ActiveDocument.Bookmarks(bookName).Range.Select();//选中书签的内容
//设置为上标
TANGER_OCX.ActiveDocument.Application.Selection.Font.SuperScript = 9999998;
TANGER_OCX.ActiveDocument.Application.Selection.Font.Italic = true;//设置成斜体
TANGER_OCX.ActiveDocument.Application.Selection.Font.Bold = true;//加粗
TANGER_OCX.ActiveDocument.Application.Selection.Font.StrikeThrough = true;//带有删除线
TANGER_OCX.ActiveDocument.Application.Selection.Font.Underline = true;//带有下划线
TANGER_OCX.ActiveDocument.Application.Selection.Font.NameFarEast = "宋体";//字体
TANGER_OCX.ActiveDocument.Application.Selection.Font.Size = 18;//大小
TANGER_OCX.ActiveDocument.Application.Selection.Font.Color = 255;//颜色
//设置为下标
//TANGER_OCX.ActiveDocument.Application.Selection.Font.Subscript = 9999998;
}
}
//判断书签是否存在,然后替换书签值(替换文本)
function ReplaceTextToWord() {
if (TANGER_OCX.ActiveDocument.BookMarks.Exists(bookName)) {
TANGER_OCX.SetBookmarkValue(bookName, "YYYYYYYYYYYY");
}
}
//替换文当中所有内容和Text值相等的值(暂时用不着)
function Searchs() {
var sel = null;
sel = TANGER_OCX.ActiveDocument.Application.Selection;
var result = true;
sel.Find.ClearFormatting();
sel.Find.Text = "王永乐";
sel.Find.Forward = true;
sel.Find.Wrap = 1;
do {
result = sel.Find.Execute();
if (result) {
sel.Font.Color = 255;
sel.Font.Name = "Arial";
sel.Font.Size = 24;
}
}
while (result);
}
</script>
① Controller代码如下:
/// <summary>
/// 打开文件(流的形式返回)
/// </summary>
/// <returns></returns>
public ActionResult ReturnFileStream()
{
var bytes = Properties.Resources.word;
var fileStream = new MemoryStream(bytes);
return new FileStreamResult(fileStream,"application/xhtml+xml");
} /// <summary>
/// 保存文件
/// </summary>
/// <returns></returns>
[HttpPost]
public ActionResult uploadFile()
{
var files = Request.Files[];
var path = Server.MapPath($"~/{DateTime.Now.ToLongDateString()}.doc");
FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
byte[] bytes = new byte[files.InputStream.Length];
files.InputStream.Read(bytes, , bytes.Length);
fs.Write(bytes, , bytes.Length);
fs.Close();
return View("Index");
}
文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器的更多相关文章
- 文档控件NTKO OFFICE 详细使用说明之预览Excel文件(查看、编辑、保存回服务器)
1.在线预览Excel文件 (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将www.ntko.com加入到浏 ...
- 文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)
1.在线预览PDF文件(禁止打印.下载.复制.另存为) (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将ww ...
- NTKO OFFICE文档控件
目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便. ...
- PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)
1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...
- VSTO:C#获取文档控件的值
基础知识准备: VSTO入门 创建Excel解决方案 string[] inputfileNames = { @"C:\1.xls", @"C:\2.xls" ...
- UploadFile控件,提交图片后,页面预览显示刚刚提交的图片
最近在用asp.net来写一个新闻系统后台,然后由于不用用网上的flash插件来上传图片什么的,我就用asp.net的控件来写,但是控件总归有一些用的不够灵活的地方.这次测试提出,文章在修改的时候,需 ...
- C# MVC(File)控件多张图片上传加预览
刚来公司实习,老板叫我写一个积分商城网站.用的是公司的框架结构搭建的后台,所以后台的图片上传不需要自己写.但是前台的评价图片就需要自己手写了,在网上找了很多代码发现都用不了.问了很多人也都没有实现! ...
- js获取file控件的完整路径(上传图片预览)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 推荐一套.NET文档处理组件Spire.Office
原文:推荐一套.NET文档处理组件Spire.Office 以前的项目中用到一点Word简单处理的功能(文字替换和转PDF格式),当时使用的是一套COM组件,必须在服务器上安装office环境.最近考 ...
随机推荐
- php知识点(基本上文档都有,只为方便记忆)
类型转换 (unset)转换为NULL (binary) 转换和 b 前缀转换支持为 PHP 5.2.1 新增 转换二进制 隐藏php后缀名 AddType application/x-httpd ...
- phpstorm 使用
常用快捷 ctrl + / 单行注释 Alt+1 隐藏左侧任务栏 设置 1:control+shift+A功能可以搜索对应功能,把mouse:Change font size(Zoom) ...的按钮 ...
- 使用.Net Core RT 标准动态库
这个文档可以引导你如何通过CoreRT生成一个原生标准的系统动态库让其他编程语言调用. CoreRT 可以构建静态库, 这些库可以在编译时链接或者也可以构建运行时所需的共享库, 创建一个支持CoreR ...
- Commons IO
Common IO 是一个工具库,用来帮助开发IO功能 它包括6个主要部分 Utility classes – 包括一些静态方法来执行常用任务 Input – InputStream 和 Reader ...
- S-HR快速查看shr日志
http://localhost:6888/shr/appData.do?method=getApplicationLog&logFile=apusic.log.0&instance= ...
- 03-Linux命令基础-第03天(makefile、静态库、动态库、gdb调试工具)
01- 复习 tar tvf xxx 查看压缩包内容 区分前后台: 是否能和用户交互 Vmware选桥接模式 会给系统虚拟一个和外部相同网段的ip 02- vim扩展操作 因为不是做嵌入式开发的 所以 ...
- proc程序中使用PLSQL、Exception 、 动态SQL(day08)
. proc中如何使用plsql 1.1 使用plsql的语法 exec sql execute begin /* 相当于plsql的匿名块 */ end; end-exec; 在预编译时,需要加如下 ...
- numpy中sum(axis=0)和axis=1的计算原理
看起来挺简单的样子,但是在给sum函数中加入参数.sum(a,axis=0)或者是.sum(axis=1) 就有点不解了 在我实验以后发现 我们平时用的sum应该是默认的axis=0 就是普通的相加 ...
- CAN在汽车电子中的应用
http://xuxiaozhao163.blog.163.com/blog/static/3793592200802784146452/ CAN是控制器局域网络(Controller Area Ne ...
- @Resource与@Autowired区别
每次理解清楚,过段时间就忘了,还是记一下,方便之后再回看. @ Autowired 是spring提供,包含3种自动装配Bean形式 1.@Autowired默认按类型byType匹配,自动装配Bea ...