jsPDF 实现 Google 云端硬盘只读 PDF 文件下载导出

December 17, 2023
测试
测试
测试
测试
3 分钟阅读

背景

https://www.savemyexams.co.uk

蜜汁刷题网站,会员简直就是在抢钱

好不容易搞了个教师折扣,试卷资源还不能下载...

本方法适用于 Google Drive 被设置为 Read Only 的 PDF 文件的下载导出

代码

/* 
	Via https://codingcat.codes/2019/01/09/download-view-protected-pdf-google-drive-js-code/
	If the images are not complete, try zooming the page to get the full image.
	1. Open Developer Tools on separate window and choose the Console tab
	2. Paste the code below (and hit enter)
*/

let jspdf = document.createElement("script");
 
jspdf.onload = function () {
 
    let pdf = new jsPDF();
    let elements = document.getElementsByTagName("img");
    for (let i in elements) {
        let img = elements[i];
        if (!/^blob:/.test(img.src)) {
            continue;
        }
        let can = document.createElement('canvas');
        let con = can.getContext('2d');
        can.width = img.width;
        can.height = img.height;
        con.drawImage(img, 0, 0);
        let imgData = can.toDataURL("image/jpeg", 1.0);
        pdf.addImage(imgData, 'JPEG', 0, 0);
        pdf.addPage();
    }

    pdf.save(document.title.split('.pdf - ')[0]+".pdf");
};
 
jspdf.src = 'https://cdn.bootcss.com/jspdf/1.5.3/jspdf.debug.js';
document.body.appendChild(jspdf);

↑ JavaScript 代码

注意

原代码来自 https://codingcat.codes/2019/01/09/download-view-protected-pdf-google-drive-js-code/

  1. 打开浏览器开发者工具(单窗口打开)选择 Console / 控制台
  2. 复制代码,回车执行

如果图片绘制不完整,尝试缩放浏览器页面

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多