我找到了pdf.js项目,这个项目非常有用。但是,我不知道如何删除“下载”选项。
我找到了pdf.js项目,这个项目非常有用。但是,我不知道如何删除“下载”选项。
只需在viewer.css中添加此内容。
.download
{
display:none !important;
}
.print
{
display:none !important;
}
仅仅删除按钮会破坏pdf.js。 你需要给它们添加一个“hidden”类(https://github.com/mozilla/pdf.js/issues/2611)
Add this on the header section:
<script>
$(function(){
$('#download').hide();
});
</script>
完成!
修改源代码。在 web/viewer.html 文件的第 85 行。
https://github.com/andreasgal/pdf.js/blob/master/web/viewer.html#L85
只需删除按钮即可。
<button id="download" title="Download" onclick="PDFView.download();" oncontextmenu="return false;">
<img src="images/download.svg" align="top" height="16"/>
Download
</button>
这并不能完全阻止有经验和渴望的用户去下载它。你永远无法完全阻止这种情况。但是,这足以提高好奇者的门槛。
secondary_toolbar.js:220 Uncaught (in promise) TypeError: Cannot read property 'addEventListener' of null at SecondaryToolbar._bindClickListeners (secondary_toolbar.js:220) at new SecondaryToolbar (secondary_toolbar.js:58) at Object._initializeViewerComponents (app.js:483) at Object.initialize (app.js:246) _bindClickListeners @ secondary_toolbar.js:220 SecondaryToolbar @ secondary_toolbar.js:58 _initializeViewerComponents @ app.js:483 initialize @ app.js:246 Promise.then (async) run @ app.js:539 webViewerLoad @ viewer.js:232
- Rocstarpdf.customise.js
实现(WordPress插件捆绑了这种方式)。我用这种方式删除了openFile按钮。viewer.html
中添加以下内容:
<script src="pdf.customise.js"></script>
然后,按以下方式制作你的pdf.customise.js
文件:(function($) {
$(document).ready(function() {
var params = window.location.search.substring(1).split("&");
var disabledownload = false;
var disableprint = false;
var disabletext = false;
var disabledoc = false;
var disableopen = true;
for (var i = 0; i < params.length; i++) {
var value = params[i].split("=");
if (value && value.length == 2)
if (value[0] == "disabledownload" && value[1] == 1) disabledownload = 1;
else if (value[0] == "disableprint" && value[1] == 1) disableprint = 1;
else if (value[0] == "disabletext" && value[1] == 1) disabletext = 1;
else if (value[0] == "disabledoc" && value[1] ==
1) disabledoc = 1
}
var extracss = "";
if (disabledownload) extracss += " .download {display:none!important;}";
if (disableprint) extracss += " .print {display:none!important;}";
if (disabletext) extracss += " .textLayer {-webkit-touch-callout: none !important; -webkit-user-select: none !important; -khtml-user-select: none !important; -moz-user-select: none !important; -ms-user-select: none !important; user-select: none !important;} .selectTool { display: none !important;}";
if (disabledoc) extracss += " #documentProperties {display:none !important;}";
if (disableopen) extracss += " #openFile { display:none!important;}";
if (disableopen) extracss += " #secondaryOpenFile { display:none!important;}";
if (extracss) {
var style = document.createElement("style");
style.type = "text/css";
style.innerHTML = extracss;
document.getElementsByTagName("head")[0].appendChild(style)
}
$(document).bind("pagerendered", function(e) {
if (disabledownload) $(".download").remove();
if (disableprint) $(".print").remove();
if (disableopen) $("#openFile").remove();
if (disableopen) $("#secondaryOpenFile").remove();
if (disabletext) {
$(".selectTool").remove();
$(".textLayer").remove();
if (PDFViewerApplication) PDFViewerApplication.pdfCursorTools.switchTool(1)
}
if (disabledoc) {
$(".documentProperties").prev(".horizontalToolbarSeparator").remove();
$(".documentProperties").remove()
}
})
})
})(jQuery);
最简单的方法是在工具栏中的特定按钮(在此情况下为下载按钮)上添加hidden
类。
PDF.JS在其CSS文件中默认包含了hidden
类。因此,只需将hidden
类添加到具有ID download
和secondaryDownload
的按钮即可。
async download() {
return false;
}
beforePrint() {
return false;
}
afterPrint() {
return false;
}
performPrint() {
return false;
}
你可以尝试这个 https://github.com/latuminggi/pdf.js_readonly
这也可以防止用户使用快捷键,如 Ctrl + S 或 Ctrl + P
将以下内容添加到viewer.css文件中:
隐藏下载图标:
.toolbarButton.download {
display: none;
}
隐藏打印机图标...
.toolbarButton.download {
display: none;
}
For both...
.toolbarButton.download, .toolbarButton.print {
display: none;
}