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>
  • 相关阅读:
    maven scope取值
    HashMap 解析
    MySQL中int(M)和tinyint(M)数值类型中M值的意义
    PyCharm 快捷键
    js 闭包,原型链,作用域链
    阿拉伯数字转中文大写金额JS(JavaScript方法)
    JSch
    Java面试点 -【笔记】
    tomcat Connector配置项 参数优化说明
    QRCanvas 示例使用
  • 原文地址:https://www.cnblogs.com/MadeInChinese/p/14194705.html
Copyright © 2011-2022 走看看