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文件(禁止打印、下载、另存为、防抓包下载)的更多相关文章

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

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

  2. 文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器

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

  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. .net mvc DropDownListFor下拉列表使用(验证)方法

    @Html.DropDownListFor(model => model.SchoolId, new SelectList(ViewBag.SelectList, "SchoolTyp ...

  2. [Jxoi2012]奇怪的道路 题解(From luoguBlog)

    题面 状压好题 1<= n <= 30, 0 <= m <= 30, 1 <= K <= 8 这美妙的范围非状压莫属 理所当然地,0和1代表度的奇偶 dp[i][j ...

  3. .NET 解决方案 核心库整理

    一系列令人敬畏的.NET核心库,工具,框架和软件: https://www.cnblogs.com/weifeng123/p/11039345.html 企业级解决方案收录:  https://www ...

  4. 【转载】Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试

    在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起J ...

  5. MySQL常用增删改查等操作语句

    修改数据库的字符集    mysql>use mydb    mysql>alter database mydb character set utf8;创建数据库指定数据库的字符集    ...

  6. eas之EAS手工打包及快速部署工具

    EAS手工打包及快速部署工具:jar包的命名是项目名就好了.   1. 在eas的工作空间下:E:\Easworkspace\Project_0 有classes和deployed_metas这两个文 ...

  7. Jquery向页面append新元素之后,如何解决事件的绑定问题?

    今天有get到一个新知识点,就是当我们向页面添加新的元素之后,加载之前的函数方法就对新元素失效了,下面我来说说如何解决这个问题的? 我先看jq api文档没有找到方法,无果只好到网上找些资料,果然找到 ...

  8. luogu P4726 多项式指数函数(模板题FFT、多项式求逆、多项式对数函数)

    手动博客搬家: 本文发表于20181127 08:39:42, 原地址https://blog.csdn.net/suncongbo/article/details/84559818 题目链接: ht ...

  9. CentOS 6.3(x86_32)下安装Oracle 10g R2

    一.硬件要求 1.内存 & swap Minimum: 1 GB of RAMRecommended: 2 GB of RAM or more 检查内存情况 # grep MemTotal / ...

  10. 【ACM】hdu_1094_A+BVI_201307261731

    A+B for Input-Output Practice (VI)Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/3276 ...