PDFに閲覧制限をかける

下記「PDFのダウンロード禁止したい」は、JavaScriptを使用していますので、

Acrobat5.0.5で「AcrobatJavaScript を使用する(J)」のチェックをはずすと開けます。
ならば、JavaScriptが有効でないと正常にみられないPDFファイルを作ればいい。と考えた方(はるさん)がいらっしゃいます。

PDFの全面を白い「覆い」で隠してしまいます。

JavaScriptが有効で、特定の条件に当てはまるときだけ、 「覆い」を非表示にします。

条件1
特定のURLの上で開いていれば、「覆い」を非表示。(URL.pdf)
条件2
閲覧期限内ならば、「覆い」を非表示。(kigen.pdf)

条件1の特定のURLから開くというのは、ブラウザの中でインライン表示している状態になりますので、MacOSX使用者は見られないことになります。
MacOSX+Safari+AdobeReader7.0 ならば閲覧可能です。
Mac使いの友人に確認してもらいました。

Acrobat 5.0(Mac):Mac OS X への対応
Adobe Acrobat 6.0 Macintosh上での制限についてのお知らせ

条件2の閲覧期限内というものであれば、MacOSX使用者にも対応します。
(MacやPCの日付を変更すれば見られますが)

と思っていましたら、MacOS X 10.2.6, Preview 2.0.1 だと見ることができるという情報が出てきました。

白い「覆い」はフォームフィールドで作られていました。
「Preview」はフォームフィールドの内容を表示することができないのです。

問い。Safari+AdobeReader7.0以前のMac対応とさせるにはどうしたらいいか?
答え。全部フォームで表せばいい。(mac.pdf)

PCの日付を変えてみてください。
ブラウザの中で表示したり、JavaScriptをオフにしたり、
ダウンロードしたりしてみてください。
また、Macの「Preview」で開いてみてください。

ここから下は、どこにどんなJavaScriptが入っているかです。
JavaScriptが有効で、特定の条件に当てはまると「ooi」という名前のフィールドを非表示にします。


1.ページを開い(表示し)た時にAcrobatJavaScriptを実行する設定

.據璽献織 の中で該当ページを右クリックして「ページのプロパティ」「アクション」タブ
▲據璽献織 の中で該当ページを選択した状態から、
オプション/ページのプロパティ」「アクション」タブ から設定。
トリガ:ページを開く
アクションを選択:JavaScriptを実行

==============================
  URLのチェックの場合
-----------------------------
cdata = "http://www.geocities.jp/habacchi1969/downURL.pdf"; var urldata = this.path; var f = this.getField("ooi"); if (urldata != cdata) { app.alert(urldata + "\nこのファイルは専用URL以外からは操作することができません!\n保存して使用したい方はご相談ください。\n\nお問い合わせは\nhabacchi宛でお願いいたします"); f.display = display.visible; } else { f.display = display.hidden; }

==============================
  期限のチェックの場合
-----------------------------
var f = this.getField("ooi"); var fdsid = "期限付き"; var endymd = "2005/04/08"; var ymd; var d = new Date(); var s = [ "yyyy/mm/dd" ]; for (var i = 0; i < s.length; i++) { ymd = (util.printd(s[i], d)); } if ( endymd < ymd ) { app.alert("識別ID:" + fdsid + "\nこのPDFファイルの有効期限は"+ endymd + "までです。\n" + "本日は" + ymd + "です。\n" + "使用期限切れでこれ以上閲覧することができません!\n\nお問い合わせは\nhabacchi宛でお願いいたします"); f.display = display.visible; } else { f.display = display.hidden; }

 
2.文書を保存する時にAcrobatJavaScriptを実行する設定
  保存前の処理(これをしないと閲覧が可能のまま保存されます)

[アドバンスト][JavaScript][文書のアクションを設定][文書を保存する]
-----------------------------
var f = this.getField("ooi");
f.display = display.visible;

 
3.文書を保存した時にAcrobatJavaScriptを実行する設定
保存後の処理(これをしないと閲覧無効でも現在閲覧しているものが有効となります)

[アドバンスト][JavaScript][文書のアクションを設定][文書を保存した]
  -----------------------------
var f = this.getField("ooi");
f.display = display.hidden;


 


Mac対応の物は、期限のチェックのURLを使ってあります。(mac.pdf)

はる - 2003年6月19日 13:13

PDFのダウンロード禁止したい

大変多いご質問ですが、Acrobatのセキュリティでは禁止できません。
IEの一時ファイルに残るだろうし、右クリックで対象を保存することもできるし、
ショートカットキーで保存画面を呼び出すこともできます。

特定のURL以外では開けないようにします。

下記のコードを[ページ開閉時の動作設定]でJavaScriptとして設定します
.據璽献織 の中で該当ページを右クリックして「ページのプロパティ」「アクション」タブ
▲據璽献織 の中で該当ページを選択した状態から、
オプション/ページのプロパティ」「アクション」タブ から設定。
トリガ:ページを開く
アクションを選択:JavaScriptを実行

URL名などは例ですので、適宜変更します。


if ( this.path != "http://www.geocities.jp/habacchi1969/downtokutei.pdf"){ app.alert("専用URL以外からは開くことができません!\n終了します。"); this.closeDoc(); }
これで、ローカルなPC上にコピーにしてもエラーメッセージが出て開くことはできません。
Webブラウザで特定URLからでしか該当PDF文書を開くことは出来ないのです。

ただし上記例ではページ開閉を設定したページは見られてしまいます。
対策としては、ページ全体に[読みとり専用]のテキストフィールドを設定した後、
「不透過」(背景色を白などにする)にしてページを覆ってしまいます。
もし開いてよい場合はテキストフィールドの
[不透過」設定を「透過」(背景色無し)に変更してやればよいでしょう。

結論から言うと、これでも開くことができてしまうのですが、かなり開きづらくはなります。

Acrobat4.0では「閉じる」ためのコマンドが理解できないためか、


「Acrobat Forms Built-in Functions Version 4.0
JavaScriptの1行目にエラーがあります。
this.closeDoc is not a function」
文書が閉じられずにローカル上のファイルを開くことが出来ます。

Acrobat5.0では、環境設定/一般/JavaScript で 「AcrobatJavaScript を使用する(J)」のチェックをはずすと
JavaScriptを有効にするかどうかというダイアログが表示されて「いいえ」を選ぶとローカル上のファイルを開くことが出来てしまいます。

また、IE+Acrobat5.0の環境でローカル上のPDFファイルをブラウザ内でインライン表示させると、


「JavaScriptのコマンドがAcrobat Database Connectivity Built-in Functions Version 5.0
Acrobat EScript ビルトイン関数バージョン 5.0
Acrobat 注釈 / Collaboration Built-in Functions Version 5.0
uncaught exception:Page :Open:1 : Global.closeDocの処理ができませんでした。」
文書が閉じられずにローカル上のファイルを開くことが出来てしまいます。

AcrobatReaderでは 環境設定/一般 にJavaScript がありませんので、そのまま開くと必ず閉じることができますが、
ローカル上のPDFファイルをブラウザ内でインライン表示することはできてしまう。

サンプルファイル
tokutei.pdf


tan - 2002年7月22日 11:40

ブラウザ内で保存ボタンを無効にしたい。

Acrobat JavaScriptを使用してほとんどのボタンは非表示にできたのですが、SaveAsを非表示にすることができません。SaveAsを非表示にすることはできるのでしょうか?

発見しました。なんと"SaveFileAs"でした。

元投稿者のorangealeroblueさんは、
発見しました。なんと"SaveFileAs"でした。menu item と違う名前を使うとは・・・
app.hideToolbarButton("SaveFileAs");

とおっしゃっていますが、再現方法がわかりません。
文書レベルのJavaScriptに入れても、ページ開閉時の動作設定に入れても、
ボタンのアクションとして追加しても動きません。謎だ・・・
「あまり頑張っても・・・・」と書いてしまったので細かな再現方法は聞けなかった・・・(;。;)。


orangealeroblue - 2004年1月6日 18:01

でもその後わかりました

PDFのファイルの機能として持たせるのではなく、
Acrobat/Readerの起動時に読み込ませるのです。


K.K. - 2005年5月11日 21:55
test.htm