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"); }