高教社文档阅读器 PDF下载
// ==UserScript==
// @name 高教社文档阅读器 PDF下载
// @version 1.0.1
// @description 为高教社文档阅读器添加PDF下载功能。该脚本在高教社文档阅读器页面上添加一个下载按钮,允许用户将文档以PDF格式下载到本地。
// @namespace https://github.com/lcandy2
// @match *://hep-urc-file.hep.com.cn/*
// @author Lcandy
// @grant none
// @license MPL-2.0
// @require https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
function generateDownloadButton() {
// 添加下载按钮
let downloadBtn = document.createElement('a');
downloadBtn.className = 'activePage';
downloadBtn.textContent = '下载';
// 将按钮添加到页面
let changePageDiv = document.querySelector('.changePage');
if (changePageDiv) {
changePageDiv.appendChild(downloadBtn);
}
// 绑定点击事件处理程序
downloadBtn.addEventListener('click', function() {
// 调用生成 PDF 的函数
if(a.fileType == "pdf"){
generatePDFFromImages(basePath, widthlist);
} else {alert('暂不支持本文档下载'+a.fileType)}
});
}
generateDownloadButton();
// 生成 PDF 的函数
function generatePDFFromImages(basePath, widthlist) {
// 创建一个 jsPDF 实例
const pdf = new jspdf.jsPDF();
let loadPageNum = datas.length <= initialPage ? datas.length : initialPage;
// 循环获取所有图片并添加到 PDF 中
for (let i = 0; i < loadPageNum; i++) {
let imageUrl = basePath+'/'+(i+1)+'.png'
console.log('正在下载:',imageUrl)
// 将图片添加到 PDF
pdf.addImage(imageUrl, 'PNG', 0, 0);
// 添加新的页面,用于容纳下一张图片
if (i + 1 < loadPageNum) {
pdf.addPage();
}
}
console.log('合成保存至文件',basePath.substring(basePath.indexOf("/") + 1, basePath.indexOf(".files"))+'.pdf')
// 保存 PDF 文件
pdf.save(basePath.substring(basePath.indexOf("/") + 1, basePath.indexOf(".files"))+'.pdf');
}
})();