Drive PDF Downloader

Enables downloading view-only PDF files from Google Drive.

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Drive PDF Downloader
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Enables downloading view-only PDF files from Google Drive.
// @author       Irushia
// @license      MIT
// @match        *://drive.google.com/drive/*
// @match        *://drive.google.com/file/d/*/view
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// ==/UserScript==

(function() {
    'use strict';

    // Register a new menu command
    GM_registerMenuCommand('Download', function() {
        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 canvasElement = document.createElement('canvas');
                let con = canvasElement.getContext("2d");
                canvasElement.width = img.width;
                canvasElement.height = img.height;
                con.drawImage(img, 0, 0,img.width, img.height);
                let imgData = canvasElement.toDataURL("image/jpeg" , 1.0);
                pdf.addImage(imgData, 'JPEG' , 0, 0);
                pdf.addPage();
            }
            pdf.save( "download.pdf" );
        };
        jspdf.src = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js' ;
        document.body.appendChild(jspdf);

    });
})();