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编辑保存回服务器的更多相关文章

  1. 文档控件NTKO OFFICE 详细使用说明之预览Excel文件(查看、编辑、保存回服务器)

    1.在线预览Excel文件 (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将www.ntko.com加入到浏 ...

  2. 文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)

    1.在线预览PDF文件(禁止打印.下载.复制.另存为) (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将ww ...

  3. NTKO OFFICE文档控件

    目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便. ...

  4. PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)

    1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...

  5. VSTO:C#获取文档控件的值

    基础知识准备: VSTO入门 创建Excel解决方案   string[] inputfileNames = { @"C:\1.xls", @"C:\2.xls" ...

  6. UploadFile控件,提交图片后,页面预览显示刚刚提交的图片

    最近在用asp.net来写一个新闻系统后台,然后由于不用用网上的flash插件来上传图片什么的,我就用asp.net的控件来写,但是控件总归有一些用的不够灵活的地方.这次测试提出,文章在修改的时候,需 ...

  7. C# MVC(File)控件多张图片上传加预览

    刚来公司实习,老板叫我写一个积分商城网站.用的是公司的框架结构搭建的后台,所以后台的图片上传不需要自己写.但是前台的评价图片就需要自己手写了,在网上找了很多代码发现都用不了.问了很多人也都没有实现! ...

  8. js获取file控件的完整路径(上传图片预览)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  9. 推荐一套.NET文档处理组件Spire.Office

    原文:推荐一套.NET文档处理组件Spire.Office 以前的项目中用到一点Word简单处理的功能(文字替换和转PDF格式),当时使用的是一套COM组件,必须在服务器上安装office环境.最近考 ...

随机推荐

  1. 浏览器 HTTP 协议缓存机制详解--网络缓存决策机制流程图

    1.缓存的分类 2.浏览器缓存机制详解 2.1 HTML Meta标签控制缓存 2.2 HTTP头信息控制缓存 2.2.1 浏览器请求流程 2.2.2 几个重要概念解释 3.用户行为与缓存 4.Ref ...

  2. day007 列表类型、元祖类型、 字典类型、 集合类型的内置方法

    目录 列表数据类型的内置方法 作用 定义方式 优先掌握的方法 需要掌握的方法 元祖类型的内置方法 作用 定义方式 优先掌握的方法(参考列表方法) 字典类型的内置方法 作用 定义方式 优先掌握的方法 需 ...

  3. [模板]FFT

    郝神并没有令我明白这个. 但是巨神的题解太强了. #include <iostream> #include <complex> #include <cmath> # ...

  4. Redis学习笔记(一)-持久化

    一.RDB持久方式 RDB持久化是把当前进程的数据已快照的形式保存到硬盘的过程. 触发方式: 1.手动触发命令:save和bgsave save:阻塞式,内存较大的实例在执行过程中会造成长时间的阻塞, ...

  5. 当样式中存在!important时无法使用show()或hide() 2017-06-11 22:25 15人阅读 评论(0) 收藏

    如果使用!important在你的样式中,比如display: none !important,此时就不能用show()了 但是我在查阅资料时发现有这样的解释, If using !important ...

  6. spring-boot 访问时,加与不加项目名分析

    众所周知,springboot非常便捷,可以简化项目开启步骤,加快开发进度. 很多新手也许都遇到过这样一个问题,在以往的springMvc项目里,大家伙都是把打的war放在tomcat中运行,下意识的 ...

  7. POJ - 3126 - Prime

    先上题目 Prime Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9259   Accepted: 5274 D ...

  8. 洛谷 P1692 部落卫队

    P1692 部落卫队 题目描述 原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突.几乎每个居民都有他的仇敌.部落酋长为了组织一支保卫部落的队伍,希望从部落的居民中选出最多的居民入伍, ...

  9. Eclipse在Project Explorer项目归组及分模块显示

    普通项目: 1.[Package Explorer]->[filter]->[Top Level Elements]->[Working Sets] 2.[Package Explo ...

  10. mysql 易错误理解

    MySQL作为数据库的一大主力军,到处存在于我们各种系统中,相信大家都不陌生!但是,你知道你能用不代表你知道细节,那我们就来盘点盘点其中一些我们平时不太注意的地方,一来为了有趣,二来为了不让自己踩坑. ...