文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器
生活随笔
收集整理的這篇文章主要介紹了
文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、在線預(yù)覽Word文件
(1)運(yùn)行環(huán)境
①瀏覽器:支持IE7-IE11(平臺(tái)版本還支持Chrome和Firefox)
②IE工具欄-Internet 選項(xiàng):將www.ntko.com加入到瀏覽器的可信站點(diǎn)中,不啟用保護(hù)模式,并將HTTPS驗(yàn)證取消
③如果是開發(fā)人員首次使用文檔控件,需要將控件手動(dòng)注冊(cè)控件,獲取控件的版本clisid以及版本信息Version(如果程序已經(jīng)開發(fā)完則可以忽略此步驟)
(2)創(chuàng)建一個(gè)加載控件的JS文件,用戶只需修改控件版本號(hào)Version,classid,cab包路徑,以及添加授權(quán)即可。具體可訪問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"> '); //標(biāo)題欄
document.write('<param name="Caption" value="華測(cè)計(jì)量技術(shù)有限公司專用">');//標(biāo)題內(nèi)容
document.write('<param name="IsUseControlAgent" value="-1"> '); //是否是控制請(qǐng)求數(shù)據(jù),其他請(qǐng)他不允許
document.write('<param name="IsNoCopy" value="0"> '); //0不允許復(fù)制
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文檔控件。請(qǐng)?jiān)跈z查瀏覽器的選項(xiàng)中檢查瀏覽器的安全設(shè)置。</SPAN> ');
document.write('</object> ');
①View代碼如下:
@{
ViewBag.Title = "Word";
}
<h2>Index</h2>
<html>
<head>
<title>NTKO Office文檔控件預(yù)覽Word修改保存回服務(wù)器演示示例</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#ffffff" ;>
<p>
<span>針對(duì)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控件初始化完成后才進(jìn)行文檔的加載
$(function () {
inIt();
});
function inIt() {
if (TANGER_OCX == null) {
alert("NTKO OFFICE文檔控件未能正確裝載。請(qǐng)?jiān)诒卷?yè)面裝載時(shí)窗口上方出現(xiàn)的提示條上點(diǎn)擊裝載ActiveX控件,并在隨后出現(xiàn)的安裝ActiveX的對(duì)話框中選擇‘是’。");
return;
}
OpenFile();
}
//以文件流的形式加載文件
function OpenFile() {
TANGER_OCX.BeginOpenFromURL('@Url.Action("ReturnFileStream", "WordView")', true);
}
//保存修改后的文件回服務(wù)器
$("#_upload").click(function () {
var list = TANGER_OCX.ActiveDocument.BookMarks;//書簽列表
alert("書簽數(shù):" + list.Count);
TANGER_OCX.SaveToURL('@Url.Action("uploadFile", "WordView")', "TANGER_OCX", "", "", "", true);
});
var bookmarkname = "審核人";
var bookmarkname2 = "批準(zhǔn)人";
//添加圖片
function AddPicToWord() {
//書簽列表
var list = TANGER_OCX.ActiveDocument.BookMarks;
alert("書簽數(shù)為:" + 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);//跳轉(zhuǎn)指定書簽位置
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/william.jpg")", true, 0, 0, 1, 100, 1);//添加圖片,true是以浮動(dòng)圖片插入,false就相當(dāng)于嵌入在光標(biāo)處了 ---插入正確
//AddIdtoPicture(bookmarkname);//為圖片添加唯一標(biāo)識(shí)(暫時(shí)用不到)
alert("書簽存在,開始插入批準(zhǔn)人簽名");
TANGER_OCX.ActiveDocument.Application.Selection.GoTo(-1, 0, 0, bookmarkname2);//跳轉(zhuǎn)指定書簽位置
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/jimly.jpg")", true, 0, 0, 1, 100, 1);//添加圖片,true是以浮動(dòng)圖片插入,false就相當(dāng)于嵌入在光標(biāo)處了 ---插入正確
alert("圖片添加成功");
}
}
//為圖片列表中圖片添加唯一標(biāo)識(shí)(圖片的AlternativeText屬性可以設(shè)置為書簽的名字name)
function AddIdtoPicture(name) {
alert("開始添加唯一標(biāo)識(shí)" + 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("書簽數(shù)為:" + 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("圖片數(shù)量" + shapes.Count);
for (var i = 1; i <= shapes.Count; i++) {
alert(shapes(i).Type + shapes(i).AlternativeText);
//根據(jù)圖片的類型以及AlternativeText屬性(書簽的名字來(lái)確定圖片)
if (shapes(i).Type == 13 && shapes(i).AlternativeText == "william") {
shapes(i).Delete();
alert("刪除成功");
}
}
TANGER_OCX.ActiveDocument.Application.Selection.GoTo(-1, 0, 0, bookmarkname);//跳轉(zhuǎn)指定書簽位置
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/jimly.jpg")", true, 0, 0, 1, 100, 1);//添加圖片,true是以浮動(dòng)圖片插入,false就相當(dāng)于嵌入在光標(biāo)處了 ---插入正確
} else {
alert("書簽不存在,請(qǐng)?zhí)砑?);
}
}
</script>
<script>
var bookName = "審核時(shí)間";
//在書簽位置設(shè)置書簽值
function AddTextToWord() {
if (TANGER_OCX.ActiveDocument.BookMarks.Exists(bookName)) {
//判斷書簽是否存在
TANGER_OCX.SetBookmarkValue(bookName, "2018/03/13");
//添加書簽值
TANGER_OCX.ActiveDocument.Bookmarks(bookName).Range.Select();//選中書簽的內(nèi)容
//設(shè)置為上標(biāo)
TANGER_OCX.ActiveDocument.Application.Selection.Font.SuperScript = 9999998;
TANGER_OCX.ActiveDocument.Application.Selection.Font.Italic = true;//設(shè)置成斜體
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;//顏色
//設(shè)置為下標(biāo)
//TANGER_OCX.ActiveDocument.Application.Selection.Font.Subscript = 9999998;
}
}
//判斷書簽是否存在,然后替換書簽值(替換文本)
function ReplaceTextToWord() {
if (TANGER_OCX.ActiveDocument.BookMarks.Exists(bookName)) {
TANGER_OCX.SetBookmarkValue(bookName, "YYYYYYYYYYYY");
}
}
//替換文當(dāng)中所有內(nèi)容和Text值相等的值(暫時(shí)用不著)
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[0];
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, 0, bytes.Length);
fs.Write(bytes, 0, bytes.Length);
fs.Close();
return View("Index");
}
總結(jié)
以上是生活随笔為你收集整理的文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 橡皮和橡皮的区别(橡皮是英国的还是美国的
- 下一篇: 怎么创建具有真实纹理的CG场景岩石?