[油猴脚本] 雨课堂课件PDF下载工具 update to v1.3.2

2021年3月27日 8347点热度 42人点赞 51条评论

在雨课堂页面自动生成PDF版本课件提供下载

注意 / Attention

这次推送到 Greasy Fork 的代码进行了 webpack 无压缩打包,所有源代码都可以在 Github 上找到!

The code pushed to Greasy Fork this time is packaged by webpack without compression. All the source code can be found on Github!

简介

雨课堂虽然有原生的打印功能,但是存在设置页面、拉伸图像、打印PDF等各种麻烦。于是乎自己给雨课堂加了个按钮,该脚本能够自动生成课件的PDF版本,只需要点击一下~

安装与反馈

使用说明

适配了 雨课堂网页版 v2,关键更新如下

  • 1.0.6 版本修改了链接匹配,理论上也能支持其它分区域雨课堂,如荷塘、长江、黄河
  • 1.1.0 版本逆天地支持插入客观题答案,支持点击[ 答案 ]按钮来开启或关闭
  • 1.2.0 支持发布类型为“课件”(区别于“课堂”)类型的PPT的下载(Beta)
  • 1.2.2 为了尊重版权与脚本的和平发展,PDF 中将默认加密注入 DRM 信息,详情参考说明
  • 1.3.0 加入了漂亮的配置界面,支持改变答案字体,拥有非常给力的用户体验
  • 1.3.1 优化了生成速度、报错信息,修复了图片格式兼容、面板不刷新的Bug
  • 1.3.2 外部库依赖改为专用百度智能云 CDN 国内的 75CDN,增加校验参数与开发时的校验比对脚本

该脚本将前端技术最大化,分析当前页面的 DOM ,完全在本地浏览器内处理,不发送任何无关请求,所使用的外部库均开源且引用自公共 CDN 和 NPM12,进行 webpack 压缩打包以求高效。

  • jsPDF 用于 PDF 的生成
  • html2canvas 将“课件”类型 PPT 的 HTML 内容转换为位图(很坑)
  • hybrid-crypto-js RSA + AES 混合加密保证 DRM 信息安全
  • Bootstrap UI 样式库,主要使用了 Popovers 插件以及图标库

另外请大家注意版权问题,下载的 PDF 自行使用不要随意发布~

原本想搁到B站专栏方便交流反馈的居然没过审理由“涉嫌广告”,ε=(´ο`*)))唉头大。

博客的评论回复邮件提醒搞好啦!!在 博客 / Github / Greasy Fork 上反馈都可以看到~


  1. jsDelivr 在中国大陆已经完全被墙了,国内也没有完全镜像 NPM 的公共 CDN 存在;一开始已经搭建了专用的CDN,但在发布前考虑到 GreasyFork 的外部代码规范,显然我们自己的 CDN 域名不在白名单内,因此我只能回落到 cdnjs 系列的国内 CDN 如 75CDN,将不在 cdnjs 中的 hybrid-crypto-js 嵌入脚本。
  2. 为了弥补安全上的可信度,这次更新同时增加了对外部库的 SHA256 校验:一是 Tampermonkey 在 @require 阶段的校验;二是开发阶段对不同 CDN 来源各个外部库的校验比对,保证专用 CDN 资源与公共的一致性。

章鱼DS

学生网站代码通吃的草根,但总拼命着长出树根。

文章评论

  • ppppppp

    长江雨课堂不能下载上课使用过的PPT(非课件板块里的课件)

    2021年4月17日
    • 章鱼DS

      @ppppppp 原脚本没有匹配分区域雨课堂的链接
      麻烦提供一下长江雨课堂后台观看PPT的链接形式
      简单修改了一下匹配规则或许可用,发布在了1.0.6版本
      希望能反馈一下

      2021年4月17日
  • ppppppp

    俺改了下脚本,把那个类似“脚本许用网站”的参数设置”www.yuketang.cn“的www改成*了,然后长江雨课堂就可以使用了.时间有点久,记不太清了

    2021年5月12日
    • 章鱼DS

      @ppppppp 好的!看来我盲改也改对了~

      2021年5月12日
  • yk

    发在课件里的ppt还是不能下载呢,只能下载课堂里的,求优化

    2021年5月28日
    • 章鱼DS

      @yk 正在优化,原理有点不一样

      2021年5月28日
    • 章鱼DS

      @yk 更新在 1.2.0 了~
      还真的有点麻烦,课件里的PPT不是纯图片的,而是 HTML —— 由很多文字图片拼在一起,估计是用了 Office Online 的技术;
      原本想完全保留矢量...太难了,最后用 html2canvas 渲染成了图片,我这里测试没有问题,除了一些阴影会丢失。

      2021年5月29日
  • ppppppp

    脚本真好用,哈哈哈哈。PPT配合复习,需要的东西都能找到!!~感谢作者~~

    2021年5月28日
  • yk

    来还愿了,章鱼大佬太强了,确实可以下载课件里的ppt了!!!!辛苦啦辛苦啦

    2021年6月2日
  • 望什么虚

    大佬 课堂形式的课件该怎么下载啊 找不到那个预览下载链接

    2021年6月16日
    • 章鱼DS

      @望什么虚 在“打印课件”按钮的左边,如截图所示
      如果是空白的可以在F12控制台看看脚本有没有载入/注入的log

      2021年6月16日
  • 望什么虚

    找到了 可以了 谢谢大佬

    2021年6月16日
  • 抓住过眼云烟

    有下载按钮,点击之后一直显示:“雨课堂课件PDF下载工具:图像处理出错”

    2021年9月3日
    • 章鱼DS

      @抓住过眼云烟 我测试了一下最新的雨课堂也是正常的...
      打开开发者工具,切换到 Console(控制台)下
      然后重新触发一下报错,可以看到日志

      2021年9月3日
  • xiaoming

    想问一下一直提示图片处理出错是怎么回事?

    2021年9月11日
    • 章鱼DS

      @xiaoming 是原版雨课堂吗,可以在浏览器控制台里查看错误日志(参照之前的回复
      我刚测试了一下原版是正常的...

      2021年9月13日
  • 小白白

    大佬,脚本安装好后没有像截图上的下载按钮是什么原因呢?怎么解决?

    2021年9月13日
    • 章鱼DS

      @小白白 先看看TamperMonkey里插件有没有启用,另外插件会在浏览器控制台里打印日志
      添加按钮时会打印“雨课堂课件PDF下载工具:按钮注入成功 - type *”

      2021年9月13日
  • 炜程

    长江雨课堂也是显示“图像处理出错”

    2021年9月13日
    • 章鱼DS

      @炜程 浏览器控制台里查看错误日志(参照之前的回复
      暂时也没法定位原因...也不知道是不是长江的问题,我的原版雨课堂一切正常

      2021年9月13日
  • 哈哈

    没有提取到图片

    2021年9月15日
    • 章鱼DS

      @哈哈 浏览器控制台里查看错误日志(参照之前的回复
      我这儿一切正常,没法复现问题,暂时也无法定位原因,如果愿意继续协助解决请回复邮件

      2021年9月16日
  • 收费员

    问题好像出在获取的文件类型上面,处理图片这一步的报错信息显示输入的不是png格式的图片,打印页面的图片是jpg格式的

    2021年11月2日
    • 章鱼DS

      @收费员 是控制台网络里看到传输的是jpge嘛?插件原理是读取html里img的src。
      有可能诶!我试着手动复现了一下。
      虽然不知道什么情况下会出现JPG,但终于有思路修复了,非常感谢!

      2021年11月2日
    • 章鱼DS

      @收费员 久等了,v1.3.1版本已经上传,兼容jpg格式,希望能解决问题

      2021年11月14日
  • seed93

    ReferenceError: GM_getValue is not defined

    2021年11月15日
    • 章鱼DS

      @seed93 在用Greasemonkey?我查了一下它不支持GM_getValue(只可以GM.getValue)
      换用Tampermonkey或许能解决...

      2021年11月15日
  • seed93

    这个work,感谢!

    2021年11月16日
  • Opqrat

    能否增加一个能够将 收藏的课件 单独导出PDF的功能呀

    2021年11月17日
    • 章鱼DS

      @Opqrat 请问是 打开课件预览(出现下载课件按钮后) 的那个“收藏”吗,我试了试切换到“收藏”标签后能够单独下载 收藏的PPT页。
      其它收藏功能我在web页面上没找到...

      2021年11月18日
  • e

    大佬日志里显示源映射错误是怎么回事呢,下载的时候总是卡在某一页,但每次卡的页都不一样

    2021年11月18日
    • 章鱼DS

      @e “源映射错误”没有影响
      照本该出现错误会弹出提示...
      具体日志要把折叠的日志条目展开才行
      所有课件都这样?

      2021年11月19日
  • e

    又试了很多次,主要是课件类型的不行,课堂的可以,每次都显示某一页HTML转高清Canvas出错,报错显示out of memory,是占用内存过多吗?有什么解决办法呢

    2021年11月20日
    • 章鱼DS

      @e 应该是内存问题...对于页数非常多的“课件”
      我没触发out of memory但也有些发现
      Firefox下,内存占用会积累且不释放,GC也没用(我也是火狐老用户...这一点受尽折磨
      插件是在Chrome下调试的,内存占用还算稳定
      所以暂时的解决途径是用Chrome,具体从脚本上解决得深究了

      2021年11月20日
  • e

    解决了,谢谢大佬!

    2021年11月20日
  • 富士山下

    控制台报错Cannot read properties of undefined (reading 'classList')

    2021年12月19日
  • 5

    有演示视频吗

    2022年3月8日
    • 章鱼DS

      @5 没有,也好久没用雨课堂了~

      2022年3月8日
  • 5

    大佬nb!!!!!!!!!!!!!!!!!!!!!!!!!

    2022年3月8日
    • 章鱼DS

      @5 解决了吧,能帮到你就好~

      2022年3月8日
  • 12

    好像用不了了

    2022年5月29日
    • 章鱼DS

      @12 如果安装后连下载按钮都没显示,可能是外部库依赖访问国外jsDelivr不畅通的原因,现在更新国内CDN应该好了

      2022年6月7日
  • xqy

    请问选择题答案设置了打印,打印出来在哪里看呀?

    2022年9月19日
    • 章鱼DS

      @xqy 对“课堂”类型的PPT,答案印在选择题页面的右上角。
      因为插件能打印答案的前提是网页上本来就能找到正确答案~

      2022年9月19日
  • sato

    没有显示按钮,控制台只有“已载入”,之后是错误提示:DevTools 无法加载来源映射:无法加载 chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/tooltip.js.map 的内容:系统错误: net::ERR_BLOCKED_BY_CLIENT

    2022年10月21日
  • 00000000

    工具非常好用,就是版权保护形同虚设

    2023年1月17日
  • 00000000

    如果直接把文本隐形随机合成进图片里而不是元数据更加隐蔽,并且整个流程在后端处理下发,否则drm一点用都没有

    2023年1月17日
    • 章鱼DS

      @00000000 防不住的,纯前端且开源,前有改插件后有改PDF...(这功能只是点到为止

      2023年1月29日
  • 千葉の

    课堂里的课件打印不了吗

    2023年2月24日
  • wollawski

    现在是的

    2023年6月13日