您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
帮助你直接下载国自然结题报告
当前为
// ==UserScript== // @name NSFC_conclusion_downloader // @namespace https://blog.rhilip.info/ // @version 0.9 // @description 帮助你直接下载国自然结题报告 // @author Rhilip // @match http://output.nsfc.gov.cn/conclusionProject/* // @require https://unpkg.com/[email protected]/dist/jspdf.umd.min.js // ==/UserScript== /* globals $, jspdf */ (function() { 'use strict'; const conclusionReportTab = $('#conclusion-report-tab'); // 定位结题报告窗口 const downloadBtn = $('<button id="download_report" type="button" class="btn btn-link pull-right text-nowrap">(下载全文PDF)</button>'); // 准备交互按钮 conclusionReportTab.before(downloadBtn); // 添加交互按钮 downloadBtn.click(async () => { downloadBtn.prop('disabled', true); if (!/该项目暂无结题报告/.test(conclusionReportTab.text())) { // 获得项目信息: 编号(加密后)、批准号、项目名称 const dependUintID = location.pathname.match(/conclusionProject\/(.+)/)[1]; const projectID = $('#basic-tab > div:nth-child(1) > div.col-md-10').text(); const projectName = $('#basic-tab > div:nth-child(2) > div.col-md-10').text(); // 准备需要的PDF文件,并删除初始页 const { jsPDF } = jspdf; const doc = new jsPDF(); doc.deletePage(1); doc.setDocumentProperties({ title: `${projectID} ${projectName}`, subject: `${location.origin}${location.pathname}`, creator: 'NSFC_conclusion_downloader' }) // 核心下载方法 const image = new Image(); for (let i=1;;i++) { downloadBtn.text(`正在下载第 ${i} 页`); // 获得图片链接 const { data: requestData } = await $.post('/baseQuery/data/completeProjectReport', {id: dependUintID, index: i}); // 加载图片并获得图片的 width, height 属性 image.src = requestData.url; await image.decode(); // 将图片添加进PDF中 doc.addPage([image.width, image.height], image.width < image.height ? 'p' : 'l'); doc.addImage(image, "PNG", 0, 0, image.width, image.height); if (!requestData.hasnext) break; } // 我们并没法 await 保存过程,所以直接显示下载完成就好,浏览器处理好会自动显示下载文件 doc.save(`${projectID} ${projectName}.pdf`); downloadBtn.text('下载完成'); } }) })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址