質問するログイン新規登録

回答編集履歴

8

追記

2020/10/11 13:25

投稿

kuma_kuma_
kuma_kuma_

スコア2506

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((e.keyCode || e.charCode) == 44){
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

追記

2020/10/11 13:24

投稿

kuma_kuma_
kuma_kuma_

スコア2506

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

追記

2020/10/11 08:36

投稿

kuma_kuma_
kuma_kuma_

スコア2506

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

修正漏れ

2020/10/11 08:28

投稿

kuma_kuma_
kuma_kuma_

スコア2506

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
- document.addEventListener('blur', function(){ overlay.style.display = ""; });
81
+ window.addEventListener('blur', function(){ overlay.style.display = ""; });
82
- document.addEventListener('focus', function(){ overlay.style.display = "none"; });
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

追記

2020/10/10 22:23

投稿

kuma_kuma_
kuma_kuma_

スコア2506

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.getElementsByTagName('head').item(0).appendChild(el);
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.body.onCopy = function(){return false;}
79
+ document.oncopy = function(){return false;}
68
- document.body.onMouseDown = function(){return false;}
80
+ document.onMouseDown = function(){return false;}
81
+ document.addEventListener('blur', function(){ overlay.style.display = ""; });
69
- window.onblur = function(){ document.getElementById('viewerContainer').style.display = "none"; }
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
- window.onfocus = function(){ document.getElementById('viewerContainer').style.display = ""; }
87
+ if(!e.ctrlKey && !e.altKey) overlay.style.display = "none";
88
+ if((e.keyCode || e.charCode) == 44){
71
- window.onkeyup = function(e){ if((navigator.clipboard) && (e.keyCode || e.charCode) == 44) navigator.clipboard.writeText(''); }
89
+ try { navigator.clipboard.writeText(''); } catch (error) {}
90
+ }
91
+ });
72
92
 
73
93
  PDFViewerApplication.open(loadData(datamap));
74
94
  function loadData(d) {
75
- var raw = atob(d);
95
+ var raw = atob(d);
76
- var uint8Array = new Uint8Array(new ArrayBuffer(raw.length));
96
+ var uint8Array = new Uint8Array(new ArrayBuffer(raw.length));
77
- for (var i = 0, len = raw.length; i < len; ++i) {
97
+ for (var i = 0, len = raw.length; i < len; ++i) {
78
- uint8Array[i] = raw.charCodeAt(i);
98
+ uint8Array[i] = raw.charCodeAt(i);
79
- }
99
+ }
80
- return uint8Array;
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

追記

2020/10/10 22:17

投稿

kuma_kuma_
kuma_kuma_

スコア2506

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

追記

2020/10/10 18:43

投稿

kuma_kuma_
kuma_kuma_

スコア2506

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

修正

2020/10/10 17:07

投稿

kuma_kuma_
kuma_kuma_

スコア2506

answer CHANGED
@@ -96,4 +96,4 @@
96
96
  ただ先にも書きましたが、開発コンソールから追いかければ文字自体は取得できてしまいます。
97
97
  (ただし文字の位置や画像までとなると相当大変ですが)
98
98
 
99
- 以上が「PDFを印刷・ダウンロード・ドコピーさせず表示する方法」となります。
99
+ 以上が「PDFを印刷・ダウンロード・プリントスクリさせず表示する方法」となります。