2

私は、組織内のユーザーが特定の PDF をブラウザー ウィンドウにロードしたときに「保存」するのを難しくするための愚かなハックに取り組んでいます。私が考えることができる最善の方法は (現在オプションではない証明書の暗号化を使用する以外に)、「保存する」イベントを作成し、ドキュメントを保存する前にドキュメント内のすべてのページを削除することです。

PDF Javascript APIに基づいて、これは非常に簡単なはずです。

//-------------------------------------------------------------
//-----------------Do not edit the XML tags--------------------
//-------------------------------------------------------------

//<Document-Actions>
//<ACRO_source>Document Will Save</ACRO_source>
//<ACRO_script>
/*********** belongs to: Document-Actions:Document Will Save ***********/
this.deletePages(0, this.numPages - 1);
//</ACRO_script>
//</Document-Actions>

ただし、保存を押すと、次のエラーが表示されます。これは、私がやっただけでもthis.deletePages(0, 0)、他の数字の組み合わせでも発生します。私がどんな愚かな間違いを犯しているのか誰にも分かりませんか?

TypeError: Invalid argument type.
Doc.deletePages:1:Document-Actions:Document Will Save
 ===> Parameter nEnd.

補足として、これを「解決」する別の方法を見つけました。それはthis.closeDoc()、Will Save イベントを呼び出すことです。これにより、ブラウザーとアドビがクラッシュします (動作しますが、費用はかかりますか?)。

4

1 に答える 1

1

これは、ユーザーが画像を右クリックして保存するのを「防ぐ」ための「テクニック」に似ています。

少し戻って、なぜユーザーに PDF を操作させたくないのかを調べてみてください。非技術的な問題に技術的な答えを適用しようとしていますか?

Web ブラウザーの通常の動作を妨げようとしているため、これを正しく行うために多くの時間を費やすことになり、メソッドが次のブラウザー バージョンで壊れないという保証はありません。技術に精通したユーザーは、あなたが思いついた技術をすぐにバイパスします。

基本的には、「ユーザーが既にコンピューターにダウンロードしたファイルを使用して何か (開く/表示する/印刷する) を実行できないようにしたい」と言っているのです。

于 2012-06-06T18:56:03.973 に答える