电百网PDF在线下载

[电百网PDF在线下载] 注:本脚本仅是一个操作指导,并没有自动实现具体功能。脚本仅供学习研究计算机技术使用,严禁用于非法行为。

  1. // ==UserScript==
  2. // @name 电百网PDF在线下载
  3. // @namespace https://userscript.snomiao.com/
  4. // @version v2020.08.14
  5. // @description [电百网PDF在线下载] 注:本脚本仅是一个操作指导,并没有自动实现具体功能。脚本仅供学习研究计算机技术使用,严禁用于非法行为。
  6. // @author snomiao@gmail.com
  7. // @match https://www.ceppedu.com/home/pdf-preview-web/*
  8. // @grant none
  9. // ==/UserScript==
  10. //
  11. // Copyright © 2020 snomiao 转载请注明出处
  12. //
  13.  
  14. console.log(
  15. "[电百网PDF在线下载] 注:本脚本仅是一个操作指导,并没有自动实现具体功能。脚本仅供学习研究计算机技术使用,严禁用于非法行为。"
  16. );
  17.  
  18. () => {
  19. ```
  20. 打开开发者工具
  21. Source
  22. 找到 UIExtension.full.****.js
  23. 搜索 ZoomInAndOutController
  24. 在后面的 handle 函数内部,配置 断点
  25. 点一下缩小的放大镜,此时将停在断点处
  26. 打开控制台,执行下面的代码
  27. ```;
  28.  
  29. _this = this;
  30.  
  31. ```
  32. 然后点继续执行(离开断点)
  33. 然后执行下面代码,即可下载到 pdf 文件
  34. ```;
  35.  
  36. function createAndDownloadBlobFile(
  37. arrayBuffers,
  38. filename,
  39. extension = "pdf"
  40. ) {
  41. const blob = new Blob(arrayBuffers);
  42. const fileName = `${filename}.${extension}`;
  43. if (navigator.msSaveBlob) {
  44. // IE 10+
  45. navigator.msSaveBlob(blob, fileName);
  46. } else {
  47. const link = document.createElement("a");
  48. // Browsers that support HTML5 download attribute
  49. if (link.download !== undefined) {
  50. const url = URL.createObjectURL(blob);
  51. link.setAttribute("href", url);
  52. link.setAttribute("download", fileName);
  53. link.style.visibility = "hidden";
  54. document.body.appendChild(link);
  55. link.click();
  56. document.body.removeChild(link);
  57. }
  58. }
  59. }
  60.  
  61. var o = (function () {
  62. return function (t, e) {
  63. if (Array.isArray(t)) return t;
  64. if (Symbol.iterator in Object(t))
  65. return (function (t, e) {
  66. var n = [],
  67. o = !0,
  68. r = !1,
  69. i = void 0;
  70. try {
  71. for (
  72. var a, s = t[Symbol.iterator]();
  73. !(o = (a = s.next()).done) &&
  74. (n.push(a.value), !e || n.length !== e);
  75. o = !0
  76. );
  77. } catch (t) {
  78. (r = !0), (i = t);
  79. } finally {
  80. try {
  81. !o && s.return && s.return();
  82. } finally {
  83. if (r) throw i;
  84. }
  85. }
  86. return n;
  87. })(t, e);
  88. throw new TypeError(
  89. "Invalid attempt to destructure non-iterable instance"
  90. );
  91. };
  92. })();
  93.  
  94. Object.entries(window).map((e) => e[1].getPDFUI);
  95. _this
  96. .getPDFUI()
  97. .getPDFViewer()
  98. .then(function (t) {
  99. var e = [];
  100. return t.currentPDFDoc
  101. .getStream(function (t) {
  102. var n = t.arrayBuffer;
  103. e.push(n);
  104. })
  105. .then(function (n) {
  106. return [e, t.currentPDFDoc.getFileName()];
  107. });
  108. })
  109. .then(function (e) {
  110. var n = o(e, 2);
  111. createAndDownloadBlobFile(n[0], n[1]);
  112. });
  113. };

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址