回答編集履歴
8
追記
answer
CHANGED
@@ -81,11 +81,11 @@
|
|
81
81
|
window.addEventListener('blur', function(){ overlay.style.display = ""; });
|
82
82
|
window.addEventListener('focus', function(){ overlay.style.display = "none"; });
|
83
83
|
window.addEventListener("keydown", function(e){
|
84
|
-
if(e.ctrlKey || e.altKey) overlay.style.display = "";
|
84
|
+
if(e.ctrlKey || e.altKey || e.keyCode == 91) overlay.style.display = "";
|
85
85
|
});
|
86
86
|
window.addEventListener("keyup", function(e){
|
87
87
|
if(!e.ctrlKey && !e.altKey) overlay.style.display = "none";
|
88
|
-
if(
|
88
|
+
if(e.keyCode == 44 || e.keyCode == 91){
|
89
89
|
try { navigator.clipboard.writeText(''); } catch (error) {}
|
90
90
|
}
|
91
91
|
});
|
@@ -128,4 +128,7 @@
|
|
128
128
|
しばらくは残しておきますが時間がたてば消します。
|
129
129
|
[PDF.js viewer(対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewertest.html)
|
130
130
|
[PDF.js viewer(未対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewer.html)
|
131
|
-
※ 未対策版はPDFを表示後読み込ませて下さい。
|
131
|
+
※ 未対策版はPDFを表示後読み込ませて下さい。
|
132
|
+
|
133
|
+
追記3
|
134
|
+
一部ノートパソコンでのプリントスクリーンに対応
|
7
追記
answer
CHANGED
@@ -127,4 +127,5 @@
|
|
127
127
|
追記2
|
128
128
|
しばらくは残しておきますが時間がたてば消します。
|
129
129
|
[PDF.js viewer(対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewertest.html)
|
130
|
-
[PDF.js viewer(未対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewer.html)
|
130
|
+
[PDF.js viewer(未対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewer.html)
|
131
|
+
※ 未対策版はPDFを表示後読み込ませて下さい。
|
6
追記
answer
CHANGED
@@ -122,4 +122,9 @@
|
|
122
122
|
以上が「PDFを印刷・ダウンロード・プリントスクリーンさせず表示する方法」となります。
|
123
123
|
|
124
124
|
追記
|
125
|
-
※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
|
125
|
+
※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
|
126
|
+
|
127
|
+
追記2
|
128
|
+
しばらくは残しておきますが時間がたてば消します。
|
129
|
+
[PDF.js viewer(対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewertest.html)
|
130
|
+
[PDF.js viewer(未対策版)](http://kumakuma.g1.xrea.com/test/pdfjs25207/web/viewer.html)
|
5
修正漏れ
answer
CHANGED
@@ -78,8 +78,8 @@
|
|
78
78
|
document.ondragstart = function(){return false;}
|
79
79
|
document.oncopy = function(){return false;}
|
80
80
|
document.onMouseDown = function(){return false;}
|
81
|
-
|
81
|
+
window.addEventListener('blur', function(){ overlay.style.display = ""; });
|
82
|
-
|
82
|
+
window.addEventListener('focus', function(){ overlay.style.display = "none"; });
|
83
83
|
window.addEventListener("keydown", function(e){
|
84
84
|
if(e.ctrlKey || e.altKey) overlay.style.display = "";
|
85
85
|
});
|
4
追記
answer
CHANGED
@@ -48,6 +48,7 @@
|
|
48
48
|
<script src="test.js"></script> <!-- 偽装したPDFファイル -->
|
49
49
|
|
50
50
|
<script type="text/javascript">
|
51
|
+
var overlay;
|
51
52
|
window.onload= function(){
|
52
53
|
let el;
|
53
54
|
el = document.getElementById("openFile");
|
@@ -56,28 +57,47 @@
|
|
56
57
|
el.parentNode.removeChild(el);
|
57
58
|
el = document.getElementById("download");
|
58
59
|
el.parentNode.removeChild(el);
|
60
|
+
overlay = document.createElement('div');
|
61
|
+
overlay.id = 'overlay';
|
62
|
+
overlay.style.position = 'absolute';
|
63
|
+
overlay.style.left = "0";
|
64
|
+
overlay.style.top = "0";
|
65
|
+
overlay.style.width = "100%";
|
66
|
+
overlay.style.height = "100%";
|
67
|
+
overlay.style.background = "rgba(64, 64, 64, 0.99)";
|
68
|
+
overlay.style.zIndex = "2147483647";
|
69
|
+
overlay.style.display = "none";
|
70
|
+
document.body.appendChild(overlay);
|
59
71
|
el = document.createElement('style');
|
60
72
|
el.type = "text/css";
|
61
|
-
document.
|
73
|
+
document.head.appendChild(el);
|
62
74
|
document.styleSheets.item( document.styleSheets.length - 1).insertRule(" * { -webkit-touch-callout: none !important; -webkit-user-select: none !important; -moz-user-select: none !important; -ms-user-select: none !important; user-select: none !important;}", 0);
|
63
75
|
document.styleSheets.item( document.styleSheets.length - 1).insertRule("@media print { body { display: none !important; } }", 0);
|
64
76
|
document.onselectstart = function(){return false;}
|
65
77
|
document.oncontextmenu = function(){return false;}
|
66
78
|
document.ondragstart = function(){return false;}
|
67
|
-
document.
|
79
|
+
document.oncopy = function(){return false;}
|
68
|
-
document.
|
80
|
+
document.onMouseDown = function(){return false;}
|
81
|
+
document.addEventListener('blur', function(){ overlay.style.display = ""; });
|
69
|
-
|
82
|
+
document.addEventListener('focus', function(){ overlay.style.display = "none"; });
|
83
|
+
window.addEventListener("keydown", function(e){
|
84
|
+
if(e.ctrlKey || e.altKey) overlay.style.display = "";
|
85
|
+
});
|
86
|
+
window.addEventListener("keyup", function(e){
|
70
|
-
|
87
|
+
if(!e.ctrlKey && !e.altKey) overlay.style.display = "none";
|
88
|
+
if((e.keyCode || e.charCode) == 44){
|
71
|
-
|
89
|
+
try { navigator.clipboard.writeText(''); } catch (error) {}
|
90
|
+
}
|
91
|
+
});
|
72
92
|
|
73
93
|
PDFViewerApplication.open(loadData(datamap));
|
74
94
|
function loadData(d) {
|
75
|
-
|
95
|
+
var raw = atob(d);
|
76
|
-
|
96
|
+
var uint8Array = new Uint8Array(new ArrayBuffer(raw.length));
|
77
|
-
|
97
|
+
for (var i = 0, len = raw.length; i < len; ++i) {
|
78
|
-
|
98
|
+
uint8Array[i] = raw.charCodeAt(i);
|
79
|
-
|
99
|
+
}
|
80
|
-
|
100
|
+
return uint8Array;
|
81
101
|
}
|
82
102
|
}
|
83
103
|
</script>
|
@@ -102,5 +122,4 @@
|
|
102
122
|
以上が「PDFを印刷・ダウンロード・プリントスクリーンさせず表示する方法」となります。
|
103
123
|
|
104
124
|
追記
|
105
|
-
※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
|
125
|
+
※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
|
106
|
-
判りやすく表示を消すようにしたが、フィルタをかけたほうがスマートかもしれません。
|
3
追記
answer
CHANGED
@@ -66,6 +66,9 @@
|
|
66
66
|
document.ondragstart = function(){return false;}
|
67
67
|
document.body.onCopy = function(){return false;}
|
68
68
|
document.body.onMouseDown = function(){return false;}
|
69
|
+
window.onblur = function(){ document.getElementById('viewerContainer').style.display = "none"; }
|
70
|
+
window.onfocus = function(){ document.getElementById('viewerContainer').style.display = ""; }
|
71
|
+
window.onkeyup = function(e){ if((navigator.clipboard) && (e.keyCode || e.charCode) == 44) navigator.clipboard.writeText(''); }
|
69
72
|
|
70
73
|
PDFViewerApplication.open(loadData(datamap));
|
71
74
|
function loadData(d) {
|
@@ -96,4 +99,8 @@
|
|
96
99
|
ただ先にも書きましたが、開発コンソールから追いかければ文字自体は取得できてしまいます。
|
97
100
|
(ただし文字の位置や画像までとなると相当大変ですが)
|
98
101
|
|
99
|
-
以上が「PDFを印刷・ダウンロード・プリントスクリーンさせず表示する方法」となります。
|
102
|
+
以上が「PDFを印刷・ダウンロード・プリントスクリーンさせず表示する方法」となります。
|
103
|
+
|
104
|
+
追記
|
105
|
+
※ プリントスクリーンの対策がアクティブウインドウ時のみだった為処理を追加
|
106
|
+
判りやすく表示を消すようにしたが、フィルタをかけたほうがスマートかもしれません。
|
2
追記
answer
CHANGED
@@ -37,7 +37,7 @@
|
|
37
37
|
|
38
38
|
この辺りはWebの場合なら
|
39
39
|
[JavaScriptでcsv読み込み](https://ameblo.jp/hollow-nage/entry-11512841947.html)
|
40
|
-
のようにして無加工でファイルを読む仕組みでも構いません。
|
40
|
+
のようにして無加工BASE64形式でファイルを読む仕組みでも構いません。
|
41
41
|
(ローカルで済ませたくてこの様な形にしているだけです)
|
42
42
|
|
43
43
|
|
1
修正
answer
CHANGED
@@ -96,4 +96,4 @@
|
|
96
96
|
ただ先にも書きましたが、開発コンソールから追いかければ文字自体は取得できてしまいます。
|
97
97
|
(ただし文字の位置や画像までとなると相当大変ですが)
|
98
98
|
|
99
|
-
以上が「PDFを印刷・ダウンロード・
|
99
|
+
以上が「PDFを印刷・ダウンロード・プリントスクリーンさせず表示する方法」となります。
|