Windows SharePoint Servicesは元来ファイル共有のための機能であり
「WSSにファイルを置いて閲覧させる」
ということは
「そのファイルをユーザがローカルに展開できる」
ということと同意である。
別にこれはWSSに限らずPCで何かを閲覧する場合は必ず起こることだ。
旅行中にボス何やらのたまわったらしい。
『WSS上でファイル(PPT)を閲覧させたいが印刷とローカルへコピーを不可にしたい』
はい、ぱっと考えて『絶対』は無理ですね。だって閲覧するんだもん。
自分は不在だったから、ボスがなんとかしようとあがいたようで
なんとPPTをどっかに依頼してswfに変換してアップロードしてました。
でもブラウザの印刷機能で印刷可能なんですが…。開いた口が塞がりません。
さて帰国したのでちょっと考えてみた。
絶対は無理にしろ、「ほぼ無理」くらいにはできないだろうか?
これは今までも印刷配布不可にする場合は
Adobe Acrobatで印刷不可のセキュリティをつけていたので
ためしに設定してWSSにアップロードしてみる。
ふむ、印刷は不可になった。
が、WSS上でPDFファイル(のリンク)を叩くと
ローカルでAdobe Readerが立ち上がりアプリ上で表示される。
このままではReader上のツールバーのファイルから保存が選べてしまう。
次はこの機能を削ろう。
再びAdobe Acrobatで
「ファイル」→「文書のプロパティ」→「開き方」→
(ユーザインタフェイスオプション)で
「メニューバーを非表示」、「ツールバーを非表示」を設定。
と設定して印刷不可のままファイルを保存。
これでReaderで開く分には問題はなくなった。
さて肝心なのはこのファイルをWSS上に置くということだ。
ユーザが閲覧しようとする場合は
当然そのファイルへのリンクをクリックして表示するわけで
そのリンクを「リンク先を名前を付けて保存」を選択すれば
ファイルそのものをローカルへ保存できる。
IIS上で上手く設定すれば実体を隠せそうだが
今回はWSS上なのでそうそう複雑なことはできない。
思いついた方法が
1、一般には公開しない(リンクを表示しない)ドキュメントライブラリを作成してそこにPDFを置く。
2、htmlファイルを作成して、その内に上記のPDFを参照で表示するようにする。
わずか3行。こんな感じ。
<HTML>
<EMBED src="hogehoge.pdf" width="100%" height="100%" >
</HTML>
3、htmlファイルを共有ドキュメントライブラリに置く。
4、ユーザへの告知はhtmlファイルへのリンクを表示する。
確かにこれでユーザへの表示はhtmlのリンクなので右クリックで保存はできない。
でもhtmlファイルのソースを見れば実ファイルがどこにあるかがバレバレ。
なんとかこのソースの表示を隠せないか?
ググってみたらこんなページが。
http://www.broadband-xp.com/hidesource/index.html
かなり細かい解説が良い感じ。
しかもページの著者が作ったソフトが結構凄い。機能充実の割に安いし。
でもただでやりたいよね、やっぱ。もうちょっとググってみた。
したらこのページにフリーのhtml暗号化ツール、XORHTMLが。
http://ni.10-59.com/
どうやらJavascriptを利用したものらしい。
これで先ほどのhtmlファイルのソースを暗号化。
これで完成。あとはキャッシュとPrintScreenくらいじゃないかと。
0 件のコメント:
コメントを投稿