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 件のコメント:
コメントを投稿