返回首頁 

Greasy Fork is available in English.

百度文库(wenku)| 免费下载BX修复版

(暂时失效,欢迎fix)//部分问题解决方法在安装脚本页面下方,请仔细阅读//基于《百度文库(wenku)在线下载PDF格式文件》修改部分代码,修复了打印页面空白问题。可将大部分文档打印成pdf/脚本仅供学习交流,请勿用于商业用途。


ติดตั้งสคริปต์นี้?
// ==UserScript==// @name         百度文库(wenku)| 免费下载BX修复版// @version       1.45// @description    (暂时失效,欢迎fix)//部分问题解决方法在安装脚本页面下方,请仔细阅读//基于《百度文库(wenku)在线下载PDF格式文件》修改部分代码,修复了打印页面空白问题。可将大部分文档打印成pdf/脚本仅供学习交流,请勿用于商业用途。// @author       ChaorenLong// @namespace    https://gitee.com/Bgz666/bdwenku-download-tampermonkey-script// @require      https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js// @match        *://wenku.baidu.com/view/*// @match        *://wenku.baidu.com/share/*// @match        *://wenku.baidu.com/tfview*// @match        *://wenku.baidu.com/share/*// @grant        unsafeWindow// @grant       GM_registerMenuCommand// @grant        GM_setValue// @grant        GM_getValue// @license      GPL-2.0// @icon         https://wkstatic.bdimg.com/static/wkview/widget/common_toc_reader/common/doc_bottom/compAsync/btns/image/icon-svip.svg// ==/UserScript==//感谢原作者 eko.zhan, HelloCodeMing 的脚本支持;脚本仅供学习交流使用,请勿用于商业用途。; (function () {'use strict'//tfview-->viewif(window.location.href.indexOf('tfview')!=-1){window.location.href = window.location.href.replace('tfview','view')}window.onload = function(){if(document.getElementsByClassName("goBtn")[0]){const moreBtn = document.getElementsByClassName("goBtn")[0];if(moreBtn){moreBtn.click();}}insert();};//insert print btnvar d = true;var e = true;var pp = true;var yyy = true;//获得每页高度后再赋值给sh2,下面判断要用全局变量,而直接这里获取页面高度数值不对var sh2 = 0;//display标志符var ds = true;//是否无边距var wbj = falsefunction insert() {/*         //自动打开50页后标志GM_setValue('asign',false) *///添加菜单if(window.location.pathname.indexOf('share')!= -1){//非ppt,暂不支持ppt自定义,请期待后续版本更新if($('[data-render]').length!=1){GM_registerMenuCommand('自定义文库文档每页高度',function(){$('#hein')[0].style.display = 'block';})//无边距打印GM_registerMenuCommand('(测试)无边距打印,建议调整好高度再使用,点击后点下载',function(){wbj = true;})GM_registerMenuCommand('取消<文档高度大于1/2打印时,每页必在不同页>',function(){pp = falsealert('OK')})GM_registerMenuCommand('恢复/取消标题',function(){if(d){if($('.reader_ab_test')){d = false;$('.reader_ab_test')[0].style.cssText+='display:block'}if($('.page')[0]){$('.page')[0].setAttribute('style','padding-top: 0px;')}}else{if($('.reader_ab_test')){d = true;$('.reader_ab_test')[0].style.display = 'none';}}})GM_registerMenuCommand('恢复/取消边框',function(){if(e){if($('.reader-page')){e = false;for(var i=0;i<$('.reader-page').length;i++){$('.reader-page')[i].style.cssText+='border:0'}}}else{if($('.reader-page')){e = true;for(i=0;i<$('.reader-page').length;i++){$('.reader-page')[i].style.cssText+='border:1px solid #D3D3D3'}}}})}else{GM_registerMenuCommand('暂不支持ppt自定义高度,请期待后续版本更新',function(){})GM_registerMenuCommand('恢复/取消标题',function(){if(d){if($('.reader_ab_test')){d = false;$('.reader_ab_test')[0].style.cssText+='display:block'}if($('.page')[0]){$('.page')[0].setAttribute('style','padding-top: 0px;')}}else{if($('.reader_ab_test')){d = true;$('.reader_ab_test')[0].style.display = 'none';}}})GM_registerMenuCommand('恢复/取消边框',function(){if(e){if($('.ppt-page-item')){e = false;for(i=0;i<$('.ppt-page-item').length;i++){$('.ppt-page-item')[i].style.cssText+='border:1px solid #D3D3D3'}//console.log($('.ppt-page-item')[i].style.cssText)/*                                 //如果无styleif(!$('.ppt-page-item')[i].style){$('.ppt-page-item')[i].setAttribute('style','border:0');}else{$('.ppt-page-item')[i].style.cssText += 'border:0'} */}}else{for(var i=0;i<$('.ppt-page-item').length;i++){if($('.ppt-page-item')){e = true;if(!$('.ppt-page-item')[i].style){$('.ppt-page-item')[i].setAttribute('style','border:0');}else{$('.ppt-page-item')[i].style.cssText += 'border:0'}}}/*                         if($('.ppt-page-item')){e = true;for(i=0;i<$('.ppt-page-item').length;i++){$('.ppt-page-item')[i].style.cssText+='border:1px solid #D3D3D3'}} */}})//无边距打印GM_registerMenuCommand('PPT暂不支持无边距打印,点击查看替代方法',function(){window.open('https://greasyfork.org/zh-CN/scripts/439850/discussions/120120')})}}if ($('#btnPrintStyle').length == 0) {$('head').append(['<style id="btnPrintStyle">','.ez-btn{background-color: rgb(68,178,158);border-radius: 6px;color: #fff;border: 0;height: 30px;line-height: 30px;width: 92px;margin-top: 2px;display: block;position: relative;left: 9px;float: left;font-size: 16px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;text-align: left;padding-left: 15px;transition: opacity .3s;}','.ez-btn:hover{background-color:#ff4e26;}','.ez-btn[title]:hover:after {content: attr(_title);position: absolute;top: -4px;left: 105%;min-width: 100px;max-width: 300px; padding: 4px 10px;background: #000000;color: #ffffff;border-radius: 4px;text-align:left;z-index:2021;}','.ez-panel{z-index:2021;display:none;position: absolute;width: 300px;font-size:14px;background: #ffffff;color: blue;  border-radius: 4px;  border: 1px solid #ff4e26;  padding: 6px;  margin: 2px;}','#doc-header-test .doc-value{margin-right: 10px !important;padding-right: 10px;}','@media print {body {display: block !important;}}','#hein{display:none; border:1px solid black;font-size:15px;padding:0 0 10px 10px;position: fixed; right: 0%; top: 30%; width:240px;height:145px;opacity: 1; z-index: 9999;}','.heightInput{display:block; width:240px;height:30px;opacity: 1; z-index: 9999;}','.currentH{width:40px;}','</style>'].join(' '))}$('body').append(['<div class="ez-panel">','<i><h3 style = "font-weight:600;color:black;font-size: 15px;">若点击后无反应,请允许弹出窗口</h3></i>','<h3 style = "font-weight:600;color:black;font-size: 15px;"><i>跳转到新页面请耐心等待页面加载完成</i></h3>','<h2 style = "font-weight:600;color:black;font-size: 15px;"><i>反馈请到  <a href ="https://gitee.com/Bgz666/bdwenku-download-tampermonkey-script" target="_blank" style ="color:orange">NameSpace</a>或  </i><a href ="https://greasyfork.org/zh-CN/scripts/439850/feedback" target="_blank" style = "color:rgb(58,158,178)">这里</a></h3>','<hr/>常见问题:<br/>','1、<a href="https://gitee.com/Bgz666/bdwenku-download-tampermonkey-script#%E4%B8%89%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95" target="_blank">点击免费下载后,如何打印成pdf文件?</a>','<br/>2、<a href="https://gitee.com/Bgz666/bdwenku-download-tampermonkey-script/issues/I4V4ZO" target="_blank">文字重叠重影该如何解决?</a>','<br/>3、<a href="https://gitee.com/Bgz666/bdwenku-download-tampermonkey-script#issue" target="_blank">图片空白,或者图片只有一半的情况如何处理?</a>','<br/>4、页面超过50页的文档可以点击菜单<a href="https://gitee.com/Bgz666/bdwenku-download-tampermonkey-script/issues/I4TW6G"> 菜单在哪打开?</a>,一键展开其余页面,分别下载','<br/>5、<a href="https://gitee.com/Bgz666/bdwenku-download-tampermonkey-script#issue" target="_blank">打印出来的pdf文件里文字断裂,或者图片表格上下页分开如何处理?</a>','</div>','<div id = "hein">','<button id="closep" style="opacity: 0.5;font-size:10px;display:block;width: 226px;margin-bottom: 10px;">关闭</button>','<span>','当前每页高度:','</span>','<input class = currentH>','<span>',' px','</span>','<button id="cbtn" style="font-size:13px;margin-left: 10px;">重置</button>','<input type="range" class = "heightInput" max="1536" value="100" step="1">','<span style="font-size:13px;font-weight:600"><i>拖动范围条或输入值后回车调整,调整会默认关闭《打印时文档每页必在不同页》建议每页空白太多时调整</i></span>','</div>'].join(''))if(window.location.pathname.indexOf('share')!= -1){//取消标题if($('.reader_ab_test')){$('.reader_ab_test')[0].style.cssText+='display:none'}if($('.page')[0]){$('.page')[0].setAttribute('style','padding-top: 0px;')}//取消边框//非pptif($('.reader-page')){for(var i=0;i<$('.reader-page').length;i++){$('.reader-page')[i].style.cssText+='border:0'}}//pptfor(i=0;i<$('.ppt-page-item').length;i++){if($('.ppt-page-item')){e = true;if(!$('.ppt-page-item')[i].style){$('.ppt-page-item')[i].setAttribute('style','border:0');}else{$('.ppt-page-item')[i].style.cssText += 'border:0'}}}//22.3.10 文档大于50页自动打开其余页面//非pptif($('[data-render]').length!=1){var inputPage = Number($('.page-input')[0].value)var pageCount = Number($('.page-count')[0].innerHTML.slice('1'))var numm = Math.floor(pageCount/50)var Remain = pageCount%50var link = window.location.href//只在第一个页面执行if(inputPage<50){//if(GM_getValue('asign')==false){//提示当前文档页数>50if(pageCount>50){GM_registerMenuCommand('文档超过50页,一键打开剩余页面',function(){alert(`文档页数大于50,将打开多个页面。请每个页面都点击下载。`)if(numm){//整除if(!Remain){for(var nn = 1;nn<numm;nn++){window.open(link+'?pn='+(nn+1)*50,'_blank')}}else{for(var nn = 1;nn<numm+1;nn++){window.open(link+'?pn='+(nn+1)*50,'_blank')}}}})}//链接有pn去掉if(link.indexOf('pn')!=-1){link = link.slice('',link.indexOf('?pn'))}//不为0,不小于50页}//}}$('h3').remove();//非ppt才显示if($('[data-page-no]')[0]){$('#hein')[0].style.display = 'block';}if($('.center')){$('.center').append('<button class="ez-btn">免费下载</button>')//链接为share按钮位置,此处修改}}else if(window.location.pathname.indexOf('share')== -1){if($('.topbar-container')){$('.topbar-container').append('<button class="ez-btn">免费下载</button>')//链接为view按钮位置,此处修改}}//调整高度if($('[data-page-no]')[0]){if($('.heightInput')[0]){var sh = $('[data-page-no]')[0].style.height;//赋值给全局变量sh2sh2 = sh;//获取当前页面高度$('.heightInput')[0].value = sh.substr(0,sh.indexOf('p'));$('.currentH')[0].value = $('.heightInput')[0].value;$('.heightInput')[0].oninput = function(){//高度被调整pp=false;yyy=false;for(var f = 0;f<$('[data-page-no]').length;f++){$('[data-page-no]')[f].style.height = $('.heightInput')[0].value + 'px'$('.currentH')[0].value = $('.heightInput')[0].value;//取消必分页$('[data-page-no]')[f].style.cssText+='page-break-after: auto;'}}$('#cbtn').click(function(){//重置后恢复标志yyy=true;//触发oninput事件$('.heightInput').val(sh.substr(0,sh.indexOf('p'))).trigger('oninput');})//回车执行$('.currentH').keydown(function(event){if (event.keyCode == 13){//设置值也触发oninput事件$('.heightInput').val($('.currentH')[0].value).trigger('oninput');}})}}//删除多余元素,或者使其隐藏if($('.top-right-fullScreen')[0]){$('.top-right-fullScreen')[0].remove();}if($('#doc_bottom_wrap')[0]){$('#doc_bottom_wrap')[0].remove();}if($('#html-reader-go-more')[0]){$('#html-reader-go-more')[0].setAttribute('style','display:none');}if($('.owner-desc-wrap')[0]){$('.owner-desc-wrap')[0].setAttribute('style','display:none');}if($('.header-wrap')[0]){$('.header-wrap')[0].setAttribute('style','display:none');}if($('.aside')[0]){$('.aside')[0].setAttribute('style','display:none');}if($('.tag-tips')[0]){$('.tag-tips')[0].setAttribute('style','display:none');}if($('.fix-searchbar-wrap')[0]){$('.fix-searchbar-wrap')[0].remove();}if($('.top-ads-banner-wrap')[0]){$('.top-ads-banner-wrap')[0].remove();}if($('#activity-tg')[0]){$('#activity-tg')[0].remove();}if($('.crubms-wrap')[0]){$('.crubms-wrap')[0].setAttribute('style','display:none');}if($('.doc-tag-wrap')[0]){$('.doc-tag-wrap')[0].setAttribute('style','display:none');}if($('.doc-value')[0]){$('.doc-value')[0].setAttribute('style','display:none');}if($('.doc-bottom-wrap')[0]){$('.doc-bottom-wrap')[0].setAttribute('style','display:none');}if($('#next_doc_box')[0]){$('#next_doc_box')[0].setAttribute('style','display:none');}if($('.left')[0]){$('.left')[0].setAttribute('style','display:none');}if($('.centerRight')[0]){$('.centerRight')[0].setAttribute('style','display:none');}if($('.ft')[0]){$('.ft')[0].setAttribute('style','display:none');}if($('#ft')[0]){$('#ft')[0].setAttribute('style','display:none');}//使主要内容居中if($('.page')[0]){$('.page')[0].setAttribute('style','padding-top: 10px;')}if($('.reader_ab_test')[0]){$('.reader_ab_test')[0].style.cssText +='text-align: center; margin-right: 0px;width:966px;margin-bottom:10px'}if($('#doc-main')[0]){if($('[data-render]')[0]){$('#doc-main')[0].setAttribute('style','margin-left:116px');}}if($('.reader-tools-bar-center')[0]){$('.reader-tools-bar-center')[0].setAttribute('style','margin-right:0px');}//去除边框/*if($('.reader-page')){for(var i=0;i<$('.reader-page').length;i++){$('.reader-page')[i].style.cssText+='border:0'}}*/var t = null$('.ez-btn').hover(function () {$('.ez-panel').css({top: $('.ez-btn').offset().top - 160 + 'px',left: $('.ez-btn').offset().left + 70 + 'px'}).show()},function () {//链接上经过,保持5秒$('a').mouseover(function(){if (t) window.clearTimeout(t)t = window.setTimeout(function () {$('.ez-panel').hide()},5*1000)})//移出panel$('.ez-panel').mouseout(function(){if (t) window.clearTimeout(t)t = window.setTimeout(function () {$('.ez-panel').hide()},500)})//其余情况if (t) window.clearTimeout(t)t = window.setTimeout(function () {$('.ez-panel').hide()},1000)})$('#closep').click(function(){$('#hein')[0].setAttribute('style','display:none')})$('.ez-btn').click(function () {//?pn=50每次从view等页面打开share都是在前50页//没有shareif(window.location.pathname.indexOf('share')== -1){//link链接if(window.location.href.indexOf('link')!= -1){if(document.querySelector("body > script:nth-child(4)")){var scriptHtml = document.querySelector("body > script:nth-child(4)").innerHTMLvar start = scriptHtml.indexOf('showDocId')+12var end = scriptHtml.indexOf('showStoreId')-3var docId = scriptHtml.slice(start,end)window.open('/share/' + docId+'?pn=50','_blank');}}else{window.open('/share/' + window.location.pathname.slice(6)+'?pn=50','_blank');}}//有shareelse{if($('.tools-bar-small')[0]){$('.tools-bar-small')[0].setAttribute('style','display:none');}prePrint()if($('#hein')[0].style.display=='block'){ds = false;$('#hein')[0].style.display = 'none';}}})$('body').mousedown(function (e) {if (e.button == 2) {//imgHandle()}return true})}var old = '';var a = [];//滤网bvar b = [];var kong = [];var c = [];function saveRecover(){if($('.prev-pageList')[0]){$('.prev-pageList')[0].remove();}if($('.next-pageList')[0]){$('.next-pageList')[0].setAttribute('style','display:none');}b = $('[data-render="1"]');if($('#next_doc_box')[0]){$('#next_doc_box')[0].remove()}for(var i = 0;i<b.length;i++){if (a.indexOf(b[i].innerHTML) == -1){a.push(b[i].innerHTML);/*                 if(b[i].style.cssText.indexOf('height') != -1){////页面小于打印时页面1/2,就调整为1/2if (parseFloat(b[i].style.height) < 750) {//第一第二页减去标题//有标题//没有手动调整过页面高度if(yyy){if(d){if(i<2){b[i].style.height = '750px';}else{b[i].style.height = '777px';}}//无标题else{b[i].style.height = '777px';}}}//添加style,打印时不在同一页//菜单没取消设置//没手动修改过高度else if(pp&&yyy){b[i].style.cssText+='page-break-after: always;'}} *///console.log(a.length);}if (c.indexOf(b[i]) == -1){c.push(b[i]);//console.log(c);}}}//2022.3.1调整小于一半页面高度函数function halfTake(){console.log(c)for(var i = 0;i<c.length;i++){if(c[i].style.cssText.indexOf('height') != -1){////页面小于打印时页面1/2,就调整为1/2if (parseFloat(c[i].style.height) < 750) {//第一第二页减去标题//有标题//没有手动调整过页面高度if(yyy){if(d){if(i<2){c[i].style.height = '750px';}else{c[i].style.height = '777px';}}//无标题else{c[i].style.height = '777px';}}}//添加style,打印时不在同一页//菜单没取消设置//没手动修改过高度else if(pp&&yyy){c[i].style.cssText+='page-break-after: always;'}}console.log(c[i].style.height)}}//main functionfunction prePrint() {$('.ez-panel').remove()$('#bottom-download').remove();// add by eko.zhan at 2019-12-14 17:35//遍历css文件,将main的样式取消$('head').find('link').each((index, item) => {if ($(item).attr('href').indexOf('/common_toc/common/style/main') != -1) {$(item).remove()}})$('.read-all').click()$('.header-wrapper').remove()$('.no-full-screen').remove()$('.lazy-load').remove()$('.reader-topbar').remove()//使打印出来页面居中//非pptif($('[data-render]')[0]){$('.main')[0].setAttribute('style','margin-left:-70px')}//重新定义remove方法jQuery.fn.extend({remove: function () {return false}})$(window).scrollTop(10);window.setTimeout(function () {saveRecover();}, 1000)var _h = document.body.scrollHeight,_tmp = 1000var _t = window.setInterval(function () {$(window).scrollTop(_tmp)saveRecover();_tmp = _tmp + 1000_h = document.body.scrollHeightif (_tmp > _h) {window.clearInterval(_t)window.setTimeout(function () {saveRecover();kong = $("[data-render='']");for (var i = 0; i < kong.length; i++) {kong[i].innerHTML = a[i];//console.log(kong[i])}doPrint();}, 1000)}}, 300)}/*** 调用浏览器打印*/function doPrint() {window.setTimeout(function () {halfTake()//2022.2.28无边距打印,有bugif(wbj){var newl = document.querySelector("#doc-main > div").innerHTMLdocument.body.innerHTML = newlwindow.print()alert('目前《无边距打印功能》尚有BUG,如需《调整页面高度》请刷新后进行高度调整或下一次打印/下载')}else{window.print()}//打印完后/*             if(!pp){debuggerfor(var i = 0;i<$('[data-page-no]').length;i++){$('[data-page-no]')[i].style.cssText+='page-break-after: auto;'}} */if(ds==false){$('#hein')[0].style.display = 'block';}a=[];if($('.tools-bar-small')[0]){if(!$('.next-pageList')[0]){$('.tools-bar-small')[0].setAttribute('style','display:block');//显示下边栏}else{$('.next-pageList')[0].setAttribute('style','display:block');}}if($('.main')[0]){$('.main')[0].setAttribute('style','margin-left:120px')//页面居中}}, 2000)}})()