文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)
1、在线预览PDF文件(禁止打印、下载、复制、另存为)
(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)
//----在线预览pdf文件,禁止打印、下载、复制
document.write('<object id="TANGER_OCX" classid="clsid:A64E3073-2016-4baf-A89D-FFE1FAA10EC0" ');//控件唯一Id,classid
document.write('codebase="NTKO/OfficeControl.cab#version=5,0,3,0" width="100%" height="100%"> ');//cab包路径以及版本号,控件大小
document.write('<param name="Toolbars" value="-1"> '); //工具栏
document.write('<param name="Titlebar" value="-1"> '); //标题栏
document.write('<param name="Caption" value="华测计量技术有限公司专用">');//标题内容
document.write('<param name="Menubar" value="0"> '); //菜单按钮
document.write('<param name="IsUseControlAgent" value="-1"> '); //只允许控制请求数据document.write('<param name="IsNoCopy" value="0"> ');//0表示不允许复制
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代码如下:
<html><head>
<title>NTKO Office文档控件预览pdf演示示例</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script language="javascript">
//控件加载完毕后,才进行pdf插件的注册
$(function () {
//alert("ntko loading...");
inIt();
});
function inIt() {
//TANGER_OCX_OBJ控件id
TANGER_OCX_OBJ = document.getElementById("TANGER_OCX");
if (TANGER_OCX_OBJ == null) {
alert("NTKO OFFICE文档控件未能正确装载。请在本页面装载时窗口上方出现的提示条上点击装载ActiveX控件,并在随后出现的安装ActiveX的对话框中选择‘是’。");
return;
}
//---------以下是告知文档控件,增加对PDF文档类型的支持。
//AddDocTypePlugin方法参数说明:第一个参数扩展名,第二个参数ProID,第三个参数版本号,第四个参数是pdf插件相对当前网页的URL,
//第5个参数是文档类型标识,第6个参数是是否自动下载插件dll,当设定为自动下载时,会比较当前客户机安装的版本,如果比第3个参数
//指定的版本底,或者客户机没有安装,会自动下载并注册插件dll。
TANGER_OCX_OBJ.AddDocTypePlugin(".pdf", "PDF.NtkoDocument", "4,0,0,5", "@Url.Content("~/NTKO/ntkooledocall.cab")", 51, true);
//alert("pdf插件注册成功");
OpenFile();
}
//打开文档
function OpenFile() {
//以流的形式返回文件
TANGER_OCX_OBJ.BeginOpenFromURL('@Url.Action("ReturnFileStream","pdfview")', true);
}
</script>
</head>
<body bgcolor="#ffffff">
<script src="~/Scripts/ntkoGenObj.js"></script>
</body>
</html>
Controller代码如下:
//以文件流的形式返回,设置格式为application/xhtml+xml可以预防抓包下载
public ActionResult ReturnFileStream()
{
var bytes = Properties.Resources.pdf;//本地测试PDF文件(依项目而定)
var fileStream = new MemoryStream(bytes);
return new FileStreamResult(fileStream, "application/xhtml+xml");
}
文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)的更多相关文章
- 文档控件NTKO OFFICE 详细使用说明之预览Excel文件(查看、编辑、保存回服务器)
1.在线预览Excel文件 (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将www.ntko.com加入到浏 ...
- 文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器
1.在线预览Word文件 (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将www.ntko.com加入到浏览 ...
- 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环境.最近考 ...
随机推荐
- 进行https通信时服务器端下发的是一个证书链
进行https通信时服务器端下发的是一个证书链,否则无法验证证书的有效性.
- LOJ #6041. 「雅礼集训 2017 Day7」事情的相似度 LCT+SAM+线段树
Code: #include<bits/stdc++.h> #define maxn 200003 using namespace std; void setIO(string s) { ...
- Docker 导入镜像报错:open /var/lib/docker/tmp/docker-import-743441288/redis-3.0.7/json: no such file or directory
下载好了redis的tar包,然后导入redis镜像是报错open /var/lib/docker/tmp/docker-import-743441288/redis-3.0.7/json: no s ...
- python PIL图像处理-图片上添加文字
首先需要安装库pillow cmd安装命令:pip install pillow 安装完后,编写脚本如下: from PIL import Image, ImageDraw, ImageFont de ...
- 如何查看系统的界面,比如费用申请单的序时簿界面引用的是哪一个ListUi.快捷键alt+shift+d 然后选中该ListUI大框框,就可以看到引用的是哪一个了.
如何查看系统的界面,比如费用申请单的序时簿界面引用的是哪一个ListUi.快捷键alt+shift+d 然后选中该ListUI大框框,就可以看到引用的是哪一个了.
- eas中删除原来的监听事件添加新的监听事件
kdtEntrys.removeKDTEditListener(kdtEntrys.getListeners(KDTEditListener.class)[0]); kdtEntrys.addKDT ...
- poj 3177&&3352 求边双联通分量,先求桥,然后求分量( 临界表代码)
/*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树 找叶子节点的个数*/ #include<stdio.h>//用容器写在3177这个题上会超内存,但 ...
- 【JS】垃圾回收和块级作用域
垃圾回收: JavaScript中,开发者不必关心内存分配和回收的问题.这和Java语言相似.有一个垃圾自己主动回收机制.那么JavaScript内部到底是如何回收垃圾的呢? 使用标记回收法:就是说. ...
- UVA 10039 Railroads
这道题好吧,一开始便是拓扑排序的想法,搞了好久,试了多组测试数据,没错啊,可是没过...作孽啊,竟然忘了拓扑不能处理环,白浪费了一晚上... 只好用动态规划了.. DP[time][city]表示在t ...
- jdbc 读取oracle long raw 字段,里面存的是文本
jdbc 读取oracle long raw 字段,里面存的是文本 参考: http://singlewolf.iteye.com/blog/278769 http://blog.csdn.net/r ...