Greasy Fork

Greasy Fork is available in English.

道客88

以pdf形式下载道客88文件

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name         道客88
// @namespace    Tampermonkey
// @version      1.1
// @description  以pdf形式下载道客88文件
// @author       12321
// @match        https://www.doc88.com/*
// @icon         none
// @grant        none
// @require https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js
// @license MIT
// ==/UserScript==

(function () {
    'use strict';

    // Your code here...


    function canvases2pdf(canvases) {
        var name = document.getElementsByClassName("doctopic")[0].getElementsByTagName("h1")[0].getAttribute("title");
        var pdf = new jspdf.jsPDF({
            format: [595.28, 841.89]
        });
        for (var i = 0; i < canvases.length; i++) {
            var pageData = canvases[i].toDataURL('image/png', 1.0);
            if (i > 0) {
                pdf.addPage();
            }
            pdf.addImage(pageData, 'PNG', 0, 0, 595.28, 841.89, null, 'NONE');
        }
        pdf.save(name + ".pdf");
    }


    //下载图片转canvas(递归函数) 并保存为pdf
    function h2c_2pdf(id, i) {
        try {
            //跳转界面
            window.location.hash = id + i;
            //等待加载
            window.setTimeout(function () {
                //转换并下载
                var page = $(id + i)[0];
                if (page == null) {
                    canvases2pdf(canvases);
                } else {
                    html2canvas(page, {
                        useCORS: true,
                        allowTaint: false,
                    }).then(function (canvas) {
                        canvases.push(canvas);
                        h2c_2pdf(id, i + 1);
                    })
                }
            }, 1000)//等待时间1s
        } catch (err) {
            console.log(err);
        }
    }

    var canvases = [];
    //创建按钮
    var button = document.createElement("button");
    button.innerHTML = "下载-pdf";
    button.onclick = function () {
        //点击继续按钮
        try {
            var con_button = document.getElementById("continueButton");
            con_button.click();
        } catch (err) {
            console.log("没有找到继续按钮");
        }
        var id = '#outer_page_';
        h2c_2pdf(id, 1);
    }

    //网页加载1s后生成按钮
    window.setTimeout(function () {
        var x = document.getElementById("item-page-panel");
        var y = document.createElement("li");
        y.appendChild(button);
        x.appendChild(y);
    }, 1000);

})();