| | |
| | | |
| | | <!-- This snippet is used in production (included from viewer.html) --> |
| | | <link rel="resource" type="application/l10n" href="locale/locale.json"> |
| | | <script src="../build/pdf.mjs" type="module"></script> |
| | | |
| | | <script type="text/javascript"> |
| | | function getBase64Data() { |
| | | // 优先从Session中获取 |
| | | let key = "_base64DataStr"; |
| | | let result = sessionStorage.getItem(key); |
| | | if (result) |
| | | return result; |
| | | |
| | | return localStorage.getItem(key); |
| | | |
| | | // console.log(window.parent.name.length); |
| | | // return window.parent.name; |
| | | } |
| | | |
| | | // console.log(document.location.search); |
| | | var BASE64_MARKER = ';base64,'; //声明文件流编码格式 |
| | | var preFileId = ""; |
| | | var pdfAsDataUri = getBase64Data(); //pdf文件的base64码,通过session/local传递base64 |
| | | if (!pdfAsDataUri) { |
| | | console.error("SessionStorage中没有_base64DataStr对象"); |
| | | } |
| | | // console.log(pdfAsDataUri); |
| | | var pdfAsArray = convertDataURIToBinary(pdfAsDataUri); |
| | | DEFAULT_URL = pdfAsArray; |
| | | |
| | | //编码转换 |
| | | function convertDataURIToBinary(dataURI) { |
| | | //[RFC2045]中有规定: Base64-行不能超过76字符,超过则添加回车换行符。因此需要把base64字段中的换行符,回车符给去掉。 |
| | | var base64Index = (dataURI + '').indexOf(BASE64_MARKER) + BASE64_MARKER.length; |
| | | var newUrl = dataURI; |
| | | newUrl = dataURI.substring(base64Index).replace(/[\n\r]/g, ''); |
| | | var raw = newUrl; |
| | | try { |
| | | raw = window.atob(newUrl); //这个方法在ie内核下无法正常解析。 |
| | | } catch (e) { |
| | | console.error(e); |
| | | } |
| | | var rawLength = raw.length; |
| | | //转换成pdf.js能直接解析的Uint8Array类型 |
| | | var array = new Uint8Array(new ArrayBuffer(rawLength)); |
| | | for (i = 0; i < rawLength; i++) { |
| | | array[i] = raw.charCodeAt(i) & 0xff; |
| | | } |
| | | return array; |
| | | } |
| | | </script> |
| | | |
| | | <script src="../build/pdf.mjs" type="module"></script> |
| | | |
| | | <link rel="stylesheet" href="viewer.css"> |
| | | |
| | | <script src="viewer.mjs" type="module"></script> |
| | |
| | | <div id="printContainer"></div> |
| | | |
| | | <input type="file" id="fileInput" class="hidden"> |
| | | |
| | | <!--隐藏多余的交互元素--> |
| | | <script type="text/javascript"> |
| | | let ids = ["sidebarToggle", "toolbarButtonSpacer", "toolbarViewerRight"]; |
| | | ids.forEach(value => { |
| | | let dom = document.getElementById(value); |
| | | if (dom) { |
| | | dom.style.display = "none"; |
| | | } |
| | | }) |
| | | let scales = document.getElementsByClassName("splitToolbarButton"); |
| | | if (scales && scales.length >= 4) { |
| | | scales[3].style.marginLeft = "-80px"; |
| | | } |
| | | </script> |
| | | |
| | | </body> |
| | | </html> |