zoukankan      html  css  js  c++  java
  • vb.net Webbrowser 通过AjAx调用Pdf.js 显示pdf的方法


    由于使用了 自定义的 http通讯服务,httprequest 等模块来写的.

    需要 使用 Post 的方法来 推送一些 信息, 而显示pdf文件,使用 pdf.js 模块,开始 使用了自定义的文件传输,先把Pdf文件下载到指定的目录.

    然后想用pdf.js加载. 发现 浏览器为了安全 不支持 读取本地文件,除非 手动点击 input标签按钮. 这不好.

    于是 就改用 ajax 从服务器获取,先是碰到了 ajax跨域问题,在前面的一篇文章中介绍解决方法.

    下面的代码 是 pdf.js 的 viewer.html 加载后 通过 InvokeScript 调用
    WebBrowser.Document.InvokeScript("XhrLoadPdf", ObjArr)
    同时要注意 调整 Webbrowser的版本 到 ie9 以上,否则 pdf.js会出现错误


    <script type="text/javascript"> function XhrLoadPdf(XmlStr, PdfFileUrl, PdfSessionID) { //var XmlStr; //保存 Post 提交的xml数据 //var PdfFileUrl; //pdf文件网址 //var PdfSessionID; //传递pdf文件获取时的SessionID,用于身份验证 if (XmlStr.length > 0) { var Xhr0; //ajax-xmlhttp 对象 if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari Xhr0 = new XMLHttpRequest(); } else { // code for IE6, IE5 Xhr0=new ActiveXObject("Microsoft.XMLHTTP"); } Xhr0.open("POST", PdfFileUrl, true); Xhr0.setRequestHeader('SessionID', PdfSessionID); Xhr0.setRequestHeader('Content-Type', 'text/xml'); Xhr0.responseType = "arraybuffer"; //xhr 回调函数 Xhr0.onreadystatechange = function (e) { if (this.readyState == 4 && this.status == 200) { //PDFViewerApplication.open( this.response,0); PDFViewerApplication.open(new Uint8Array(this.response), 0); } }; Xhr0.send(XmlStr); } } </script>
  • 相关阅读:
    初识python
    文件操作
    初识python
    pycharm IDE
    初识python
    初识Python
    python之网络编程-多线程
    python之并发编程-进程之间的通信
    python之并发编程-多进程
    python之并发编程-操作系统
  • 原文地址:https://www.cnblogs.com/MadeInChinese/p/14194705.html
Copyright © 2011-2022 走看看