suyiScreen/node_modules/.cache/vue-loader/f4ad70cd8fa77116a905327a280...

1 line
14 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"remainingRequest":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\src\\components\\pdf\\pdf.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\src\\components\\pdf\\pdf.vue","mtime":1670582921054},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\babel-loader\\lib\\index.js","mtime":499162500000},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\hjmWeb\\suyi\\suyi1111\\suyi1111\\suyi1111\\suyi1111\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgcGRmIGZyb20gInZ1ZS1wZGYiOw0KZXhwb3J0IGRlZmF1bHQgew0KIHByb3BzOiB7DQogICAgLy8g5b2T5YmNcGRm6Lev5b6EDQogICAgcGRmVXJsOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0Og0KICAgICAgICAiaHR0cDovL3N0b3JhZ2UueHVldGFuZ3guY29tL3B1YmxpY19hc3NldHMveHVldGFuZ3gvUERGL1BsYXllckFQSV92MS4wLjYucGRmIiwNCiAgICB9LA0KICB9LA0KY29tcG9uZW50czogew0KICAgIHBkZiwNCiAgfSwNCiAgIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIC8vIOaAu+mhteaVsA0KICAgICAgcGFnZVRvdGFsTnVtOiAxLA0KICAgICAgLy8g5b2T5YmN6aG15pWwDQogICAgICBwYWdlTnVtOiAxLA0KICAgICAgLy8g5Yqg6L296L+b5bqmDQogICAgICBsb2FkZWRSYXRpbzogMCwNCiAgICAgIC8vIOmhtemdouWKoOi9veWujOaIkA0KICAgICAgY3VyUGFnZU51bTogMCwNCiAgICAgIC8vIOaUvuWkp+ezu+aVsCDpu5jorqTnmb7liIbnmb4NCiAgICAgIHNjYWxlOiAxMDAsDQogICAgICAvLyDml4vovazop5LluqYg4oCYOTDigJnnmoTlgI3mlbDmiY3mnInmlYgNCiAgICAgIHBhZ2VSb3RhdGU6IDAsDQogICAgICAvLyDljZXlh7vlhoXpg6jpk77mjqXml7bop6blj5EgKOebruWJjeaIkeayoeaciemBh+WIsOS9v+eUqOWcuuaZrykNCiAgICAgIHBhZ2U6IDAsDQogICAgfTsNCiAgfSwNCndhdGNoOiB7fSwNCiAgY29tcHV0ZWQ6IHt9LA0KICBjcmVhdGVkKCkge30sDQogIG1vdW50ZWQoKSB7fSwNCiAgbWV0aG9kczogew0KICAgIC8v5LiL6L29UERGDQogICAgZmlsZURvd25sb2FkKGRhdGEsIGZpbGVOYW1lKSB7DQogICAgICBsZXQgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgew0KICAgICAgICAvL3R5cGXnsbvlnovlkI7nq6/ov5Tlm57mnaXnmoTmlbDmja7kuK3kvJrmnInvvIzmoLnmja7oh6rlt7Hlrp7pmYXov5vooYzkv67mlLkNCiAgICAgICAgdHlwZTogImFwcGxpY2F0aW9uL3BkZjtjaGFyc2V0LVVURi04IiwNCiAgICAgIH0pOw0KICAgICAgbGV0IGZpbGVuYW1lID0gZmlsZU5hbWUgfHwgInBkZi5wZGYiOw0KICAgICAgaWYgKHR5cGVvZiB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IgIT09ICJ1bmRlZmluZWQiKSB7DQogICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLCBmaWxlbmFtZSk7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB2YXIgYmxvYlVSTCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOw0KICAgICAgICAvLyDliJvlu7rpmpDol488YT7moIfnrb7ov5vooYzkuIvovb0NCiAgICAgICAgdmFyIHRlbXBMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOw0KICAgICAgICB0ZW1wTGluay5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KICAgICAgICB0ZW1wTGluay5ocmVmID0gYmxvYlVSTDsNCiAgICAgICAgdGVtcExpbmsuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsIGZpbGVuYW1lKTsNCiAgICAgICAgaWYgKHR5cGVvZiB0ZW1wTGluay5kb3dubG9hZCA9PT0gInVuZGVmaW5lZCIpIHsNCiAgICAgICAgICB0ZW1wTGluay5zZXRBdHRyaWJ1dGUoInRhcmdldCIsICJfYmxhbmsiKTsNCiAgICAgICAgfQ0KICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlbXBMaW5rKTsNCiAgICAgICAgdGVtcExpbmsuY2xpY2soKTsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZW1wTGluayk7DQogICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGJsb2JVUkwpOw0KICAgICAgfQ0KICAgIH0sDQoNCiAgICAvL+aUvuWkpw0KICAgIHNjYWxlRCgpIHsNCiAgICAgIHRoaXMuc2NhbGUgKz0gNTsNCiAgICAgIHRoaXMuJHJlZnMucGRmLiRlbC5zdHlsZS53aWR0aCA9IHBhcnNlSW50KHRoaXMuc2NhbGUpICsgIiUiOw0KICAgIH0sDQoNCiAgICAvL+e8qeWwjw0KICAgIHNjYWxlWCgpIHsNCiAgICAgIC8vIHNjYWxlIOaYr+eZvuWIhueZvuWxleekuiDkuI3lu7rorq7nvKnmlL4NCiAgICAgIGlmICh0aGlzLnNjYWxlID09IDEwMCkgew0KICAgICAgICByZXR1cm47DQogICAgICB9DQogICAgICB0aGlzLnNjYWxlICs9IC01Ow0KICAgICAgY29uc29sZS5sb2cocGFyc2VJbnQodGhpcy5zY2FsZSkgKyAiJSIpOw0KICAgICAgdGhpcy4kcmVmcy5wZGYuJGVsLnN0eWxlLndpZHRoID0gcGFyc2VJbnQodGhpcy5zY2FsZSkgKyAiJSI7DQogICAgfSwNCiAgICAvLyDliIfmjaLkuIrkuIDpobUNCiAgICBwcmVQYWdlKCkgew0KICAgICAgdmFyIHAgPSB0aGlzLnBhZ2VOdW07DQogICAgICBwID0gcCA+IDEgPyBwIC0gMSA6IHRoaXMucGFnZVRvdGFsTnVtOw0KICAgICAgdGhpcy5wYWdlTnVtID0gcDsNCiAgICB9LA0KICAgIC8vIOWIh+aNouS4i+S4gOmhtQ0KICAgIG5leHRQYWdlKCkgew0KICAgICAgdmFyIHAgPSB0aGlzLnBhZ2VOdW07DQogICAgICBwID0gcCA8IHRoaXMucGFnZVRvdGFsTnVtID8gcCArIDEgOiAxOw0KICAgICAgdGhpcy5wYWdlTnVtID0gcDsNCiAgICB9LA0KICAgIC8vIOmhuuaXtumSiOmAieS4reinkuW6pg0KICAgIGNsb2NrKCkgew0KICAgICAgdGhpcy5wYWdlUm90YXRlICs9IDkwOw0KICAgIH0sDQogICAgLy8g6YCG5pe26ZKI5peL6L2s6KeS5bqmDQogICAgY291bnRlckNsb2NrKCkgew0KICAgICAgdGhpcy5wYWdlUm90YXRlIC09IDkwOw0KICAgIH0sDQogICAgLy8gcGRmIOacieWvhueggSDliJnpnIDopoHovpPlhaXnp5jlr4YNCiAgICBwYXNzd29yZCh1cGRhdGVQYXNzd29yZCwgcmVhc29uKSB7DQogICAgICB1cGRhdGVQYXNzd29yZChwcm9tcHQoJ3Bhc3N3b3JkIGlzICJ0ZXN0IicpKTsNCiAgICAgIGNvbnNvbGUubG9nKCIuLi5yZWFzb24uLi4iKTsNCiAgICAgIGNvbnNvbGUubG9nKHJlYXNvbik7DQogICAgICBjb25zb2xlLmxvZygiLi4ucmVhc29uLi4uIik7DQogICAgfSwNCiAgICAvLyDpobXpnaLliqDovb3miJDlip8gIOW9k+WJjemhteaVsA0KICAgIHBhZ2VMb2FkZWQoZSkgew0KICAgICAgdGhpcy4kZW1pdCgiY3VycmVudCIsIGUpOw0KICAgICAgdGhpcy5jdXJQYWdlTnVtID0gZTsNCiAgICB9LA0KICAgIC8vIOW8guW4uOebkeWQrA0KICAgIHBkZkVycm9yKGVycm9yKSB7DQogICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsNCiAgICB9LA0KICAgIC8vIOaJk+WNsOaJgOaciQ0KICAgIHBkZlByaW50QWxsKCkgew0KICAgICAgdGhpcy4kcmVmcy5wZGYucHJpbnQoKTsNCiAgICB9LA0KICAgIC8vIOaJk+WNsCDnrKzkuIDpobXlkoznrKzkuozpobUNCiAgICBwZGZQcmludCgpIHsNCiAgICAgIC8vIOesrOS4gOS4quWPguaVsCDmlofmoaPmiZPljbDnmoTliIbovqjnjocNCiAgICAgIC8vIOesrOS6jOS4quWPguaVsCDmlofmoaPmiZPljbDnmoTpobXmlbANCiAgICAgIHRoaXMuJHJlZnMucGRmLnByaW50KDEwMCwgWzEsIDJdKTsNCiAgICB9LA0KICAgIC8vIOiOt+WPluW9k+WJjemhtemdonBkZueahOaWh+Wtl+S/oeaBr+WGheWuuQ0KICAgIGxvZ0NvbnRlbnQoKSB7DQogICAgICB0aGlzLiRyZWZzLnBkZi5wZGYuZm9yRWFjaFBhZ2UoZnVuY3Rpb24gKHBhZ2UpIHsNCiAgICAgICAgcmV0dXJuIHBhZ2UuZ2V0VGV4dENvbnRlbnQoKS50aGVuKGZ1bmN0aW9uIChjb250ZW50KSB7DQogICAgICAgICAgbGV0IHRleHQgPSBjb250ZW50Lml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS5zdHIpOw0KICAgICAgICAgIGxldCBhbGxTdHIgPSBjb250ZW50Lml0ZW1zLnJlZHVjZSgNCiAgICAgICAgICAgIChpbml0VmFsLCBpdGVtKSA9PiAoaW5pdFZhbCArPSBpdGVtLnN0ciksDQogICAgICAgICAgICAiIg0KICAgICAgICAgICk7DQogICAgICAgICAgY29uc29sZS5sb2coYWxsU3RyKTsgLy8g5YaF5a655a2X56ym5LiyDQogICAgICAgICAgY29uc29sZS5sb2codGV4dCk7IC8vIOWGheWuueaVsOe7hA0KICAgICAgICB9KTsNCiAgICAgIH0pOw0KICAgIH0sDQogIH0sDQp9DQo="},{"version":3,"sources":["pdf.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"pdf.vue","sourceRoot":"src/components/pdf","sourcesContent":["<template>\r\n <div class=\"pdf\">\r\n <div class=\"show\">\r\n <pdf\r\n ref=\"pdf\"\r\n :src=\"pdfUrl\"\r\n :page=\"pageNum\"\r\n :rotate=\"pageRotate\"\r\n @password=\"password\"\r\n @progress=\"loadedRatio = $event\"\r\n @page-loaded=\"pageLoaded($event)\"\r\n @num-pages=\"pageTotalNum = $event\"\r\n @error=\"pdfError($event)\"\r\n @link-clicked=\"page = $event\"\r\n >\r\n </pdf>\r\n </div>\r\n\r\n <div class=\"pdf_footer\">\r\n <div class=\"info\">\r\n <div>当前页数/总页数:{{ pageNum }}/{{ pageTotalNum }}</div>\r\n <div>进度:{{ loadedRatio }}</div>\r\n <div>页面加载成功: {{ curPageNum }}</div>\r\n </div>\r\n <div class=\"operate\">\r\n <div class=\"btn\" @click.stop=\"clock\">顺时针</div>\r\n <div class=\"btn\" @click.stop=\"counterClock\">逆时针</div>\r\n <div class=\"btn\" @click.stop=\"prePage\">上一页</div>\r\n <div class=\"btn\" @click.stop=\"nextPage\">下一页</div>\r\n <div class=\"btn\" @click=\"scaleD\">放大</div>\r\n <div class=\"btn\" @click=\"scaleX\">缩小</div>\r\n <div class=\"btn\" @click=\"pdfPrint()\">打印所有指定页</div>\r\n <div class=\"btn\" @click=\"pdfPrintAll()\">打印所有</div>\r\n <div class=\"btn\" @click=\"logContent()\">获取页面信息</div>\r\n <div class=\"btn\" @click=\"fileDownload(pdfUrl, 'pdf文件')\">下载</div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport pdf from \"vue-pdf\";\r\nexport default {\r\n props: {\r\n // 当前pdf路径\r\n pdfUrl: {\r\n type: String,\r\n default:\r\n \"http://storage.xuetangx.com/public_assets/xuetangx/PDF/PlayerAPI_v1.0.6.pdf\",\r\n },\r\n },\r\ncomponents: {\r\n pdf,\r\n },\r\n data() {\r\n return {\r\n // 总页数\r\n pageTotalNum: 1,\r\n // 当前页数\r\n pageNum: 1,\r\n // 加载进度\r\n loadedRatio: 0,\r\n // 页面加载完成\r\n curPageNum: 0,\r\n // 放大系数 默认百分百\r\n scale: 100,\r\n // 旋转角度 90的倍数才有效\r\n pageRotate: 0,\r\n // 单击内部链接时触发 (目前我没有遇到使用场景)\r\n page: 0,\r\n };\r\n },\r\nwatch: {},\r\n computed: {},\r\n created() {},\r\n mounted() {},\r\n methods: {\r\n //下载PDF\r\n fileDownload(data, fileName) {\r\n let blob = new Blob([data], {\r\n //type类型后端返回来的数据中会有根据自己实际进行修改\r\n type: \"application/pdf;charset-UTF-8\",\r\n });\r\n let filename = fileName || \"pdf.pdf\";\r\n if (typeof window.navigator.msSaveBlob !== \"undefined\") {\r\n window.navigator.msSaveBlob(blob, filename);\r\n } else {\r\n var blobURL = window.URL.createObjectURL(blob);\r\n // 创建隐藏<a>标签进行下载\r\n var tempLink = document.createElement(\"a\");\r\n tempLink.style.display = \"none\";\r\n tempLink.href = blobURL;\r\n tempLink.setAttribute(\"download\", filename);\r\n if (typeof tempLink.download === \"undefined\") {\r\n tempLink.setAttribute(\"target\", \"_blank\");\r\n }\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n document.body.removeChild(tempLink);\r\n window.URL.revokeObjectURL(blobURL);\r\n }\r\n },\r\n\r\n //放大\r\n scaleD() {\r\n this.scale += 5;\r\n this.$refs.pdf.$el.style.width = parseInt(this.scale) + \"%\";\r\n },\r\n\r\n //缩小\r\n scaleX() {\r\n // scale 是百分百展示 不建议缩放\r\n if (this.scale == 100) {\r\n return;\r\n }\r\n this.scale += -5;\r\n console.log(parseInt(this.scale) + \"%\");\r\n this.$refs.pdf.$el.style.width = parseInt(this.scale) + \"%\";\r\n },\r\n // 切换上一页\r\n prePage() {\r\n var p = this.pageNum;\r\n p = p > 1 ? p - 1 : this.pageTotalNum;\r\n this.pageNum = p;\r\n },\r\n // 切换下一页\r\n nextPage() {\r\n var p = this.pageNum;\r\n p = p < this.pageTotalNum ? p + 1 : 1;\r\n this.pageNum = p;\r\n },\r\n // 顺时针选中角度\r\n clock() {\r\n this.pageRotate += 90;\r\n },\r\n // 逆时针旋转角度\r\n counterClock() {\r\n this.pageRotate -= 90;\r\n },\r\n // pdf 有密码 则需要输入秘密\r\n password(updatePassword, reason) {\r\n updatePassword(prompt('password is \"test\"'));\r\n console.log(\"...reason...\");\r\n console.log(reason);\r\n console.log(\"...reason...\");\r\n },\r\n // 页面加载成功 当前页数\r\n pageLoaded(e) {\r\n this.$emit(\"current\", e);\r\n this.curPageNum = e;\r\n },\r\n // 异常监听\r\n pdfError(error) {\r\n console.error(error);\r\n },\r\n // 打印所有\r\n pdfPrintAll() {\r\n this.$refs.pdf.print();\r\n },\r\n // 打印 第一页和第二页\r\n pdfPrint() {\r\n // 第一个参数 文档打印的分辨率\r\n // 第二个参数 文档打印的页数\r\n this.$refs.pdf.print(100, [1, 2]);\r\n },\r\n // 获取当前页面pdf的文字信息内容\r\n logContent() {\r\n this.$refs.pdf.pdf.forEachPage(function (page) {\r\n return page.getTextContent().then(function (content) {\r\n let text = content.items.map((item) => item.str);\r\n let allStr = content.items.reduce(\r\n (initVal, item) => (initVal += item.str),\r\n \"\"\r\n );\r\n console.log(allStr); // 内容字符串\r\n console.log(text); // 内容数组\r\n });\r\n });\r\n },\r\n },\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.pdf {\r\n padding: 20px;\r\n .show {\r\n overflow: auto;\r\n margin: auto;\r\n max-width: 75%;\r\n height: 80vh;\r\n // max-height: 530px;\r\n }\r\n .pdf_footer {\r\n position: sticky;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n padding: 10px 0;\r\n background-color: rgba(255, 255, 255, 0.5);\r\n .info {\r\n display: flex;\r\n flex-wrap: wrap;\r\n div {\r\n width: 30%;\r\n }\r\n }\r\n .operate {\r\n margin: 10px 0 0;\r\n display: flex;\r\n flex-wrap: wrap;\r\n div {\r\n // width: 80px;\r\n text-align: center;\r\n font-size: 15px;\r\n }\r\n .btn {\r\n cursor: pointer;\r\n margin: 5px 10px;\r\n width: 120px;\r\n border-radius: 10px;\r\n padding: 5px;\r\n color: #fff;\r\n background-color: #3dcbbc;\r\n }\r\n }\r\n }\r\n}\r\n\r\n</style>"]}]}