## 前提事項：実行環境

OS：Windows7 SP1  
Acrobat：Acrobat Reader XI

## 状況

現在、PDFのページを削除する処理をPDF埋め込みのjavascriptで実現することを試みています。  
そのため、[Adobe Acrobat XI +
JavaScript例文辞典](http://www.openspc2.org/reibun/AcrobatXI/)様の[「指定ページを削除する」](http://www.openspc2.org/reibun/AcrobatXI/javascript/page/011/index.html)ページを参考にさせていただいております。

しかし、上記ページのサンプル(sample.pdf)をうまく動かすことができておりません。  
（ボタンを押すと２ページ目が削除されるはずだが、削除されない）  
Acrobat Reader付属のJavaScriptデバッガで確認したところ、以下のエラーが表示されておりました。  
○実行時エラー

> RaiseError: この操作は許可されていません Doc.deletePages:1:Field ボタン:Mouse Up ===>  
>  この操作は許可されていません

* * *

同様に、Acrobat Reader 付属のJavaScriptデバッガ上で、以下コードを実行したところ、同様にエラーが出ております。  
○実行Script

```

    this.deletePages(1);
    
```

○エラー

> RaiseError: この操作は許可されていません Doc.deletePages:1:Console undefined:Exec  
>  ===> この操作は許可されていません

## 質問事項

上記エラーについて、どのようにしたら回避できるでしょうか。  
セキュリティの問題に見受けられたため、以下の通り設定を変更して試行しましたが、状況に変化はありません。  
○修正した設定  
■設定＞Javascript  
・メニュー項目のJavaScript実行権限を有効にする オフ→オン  
・グローバルオブジェクトセキュリティポリシーを有効にする オン→オフ  
■設定＞セキュリティ  
・変更なし  
■設定＞セキュリティ（拡張）  
・拡張セキュリティを有効にする オン→オフ

アドバイスよろしくお願いいたします。
CC BY-SA 3.0
2016-02-20T07:37:27.060
22303
2016-04-21T08:25:25.123
2020-06-17T08:14:45.997
-1
14403
question
javascript pdf
Acrobat javascript: deletePagesでの「この操作は許可されていません」エラー
[`deletePages()`
のリファレンス](http://help.adobe.com/livedocs/acrobat_sdk/11/Acrobat11_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat11_HTMLHelp&file=JS_API_AcroJS.89.458.html)に以下の記述があります。（斜体は原文ママ）

> Beginning with version 6.0, this method deletes _spawned_ pages from within
> Adobe Reader for documents with forms usage rights enabled.

試しにAcrobat上でページテンプレートを定義しておき、[`this.getTemplate('hoge').spawn()`](http://help.adobe.com/livedocs/acrobat_sdk/11/Acrobat11_HTMLHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Acrobat11_HTMLHelp&file=JS_API_AcroJS.89.1221.html)
を実行するボタンを配置してみると、AcrobatやAdobeReader上でこのボタンを押して作られたページは `deletePages()`
で削除することができました。しかしやはり普通のページは削除できませんでした。

リファレンスの記述と一致していることを考えると、回避するのは難しいように思います。
CC BY-SA 3.0
2016-02-21T06:40:47.600
22345
2016-02-21T06:40:47.600
8000
22303
answer