4

2つの別々のPDFファイルとして両面ドキュメントがあります。1つのドキュメントの前面ページと2番目のドキュメントの背面ページです。

front.pdf
rear.pdf

また、それらをすべてのページで1つのドキュメントにまとめましたが、すべての表向きのページが後ろ向きのページの前にあります。ページの順序は、次の形式です。{1,3,5,7,...,[n],2,4,6,8,...,[n-1 OR n+1]}

all.pdf

Adobe AbrobatXPro内から実行できる簡単なJavaScriptを書きたいと思います。理想的には、ドキュメントのページをカウントし、all.pdf合計ページ数が奇数または偶数の場合の両方を処理してから、元の順序になるように並べ替えます。

page [1>3>4>2] => page [1>2>3>4]

上記の小さな主要なコードスニペットは、この質問のSuperUserに対するuser171577の回答からのものです: https ://superuser.com/questions/181596/software-that-merges-pdf-every-other-page

4

4 に答える 4

3

NullUserException からの次のアドバイスを実現できました。

このスクリプトでは、すべての奇数ページとそれに続くすべての偶数ページで構成されるドキュメントが必要です。n偶数ページとn+1奇数ページがある場合にも対応します。

InterleavePages次のコードを使用して、 という「ドキュメント JavaScript」を入力しました。

function InterleavePages() {

var n = this.numPages;
var nOdd = Math.floor(n / 2);
var nEven = n - nOdd;
var x;
var y;
var i;

for(i = 0; i < nEven; i++) {
                         // movePage x, toAfterPage y
                         // note page numbers are 0-indexed
    x = nOdd + (i);      //
    y = i * 2     ;      //  
    this.movePage(x,y); 
   }
}
InterleavePages();
于 2013-01-08T12:30:16.490 に答える
1

ありがとう、これは大きな助けになりました。私が見つけた制限を指摘したかったのは、偶数ページで書かれたようにしか機能しないということです. より洗練された計算スクリプトを作成することはおそらく可能ですが、私は簡単な方法を取り、17 ページのテスト ドキュメントの最後に空白のページを追加しました。ただし、必要に応じて追加のページを追加することを忘れないように、アラートを追加しました...

function InterleavePages() {

var n = this.numPages;
var nOdd = Math.floor(n / 2);
var nEven = n - nOdd;
var x;
var y;
var i;

app.alert({
cMsg: "Total pages must be an even number",
cTitle: "Even Number of Pages Required!",
nIcon: 1, nType: 1
});

this.pageNum = 0;

for(i = 0; i < nEven; i++) {
                         // movePage x, toAfterPage y
                         // note page numbers are 0-indexed
    x = nOdd + (i);      //
    y = i * 2     ;      //  
    this.movePage(x,y); 
   }
}
InterleavePages(); 
于 2013-06-10T14:20:27.543 に答える