Acrobat JS

[Acrobat]2つのPDFファイルの各ページを交互にマージしたPDFを作成する



ダウンロード - 交互マージ.zip.zip




サンプルコード

サンプルソース(参考)
行番号ソース
001// PDFのページ毎の交互マージ
002//  20240922 v1
003//  com.cocolog-nifty.quicktimer.icefloe
004//【A】入力ファイル 元ファイル
005var strActivDocFilePath = this.path;
006//【A】のドットと拡張子
007//最後のカンマまでのキャラクタ数
008var numCntLastDot = strActivDocFilePath.lastIndexOf(".");
009var strBaseFilePath = strActivDocFilePath.substring(0, numCntLastDot);
010//【C】出力ファイル 保存先
011var strSaveDocFilePath = strBaseFilePath + ".マージ済み.pdf";
012//ファイル名
013var numCntLastDir = strActivDocFilePath.lastIndexOf("/");
014var strFileName = strActivDocFilePath.substring(numCntLastDir);
015//console.println("strFileName: " + strFileName);
016var strContainerDir = strActivDocFilePath.substring(0, numCntLastDir);
017//console.println("strContainerDir: " + strContainerDir);
018//【B】マージファイル 挿入ファイル
019var objInsertDocFile = app.browseForDoc({
020  bSave: false
021});
022var strInsertDocFilePath = objInsertDocFile.cPath;
023//console.println("strInsertDocFilePath: " + strInsertDocFilePath);
024//ファイルを開く
025var ActivDoc = app.openDoc(strActivDocFilePath);
026var InsertDoc = app.openDoc(strInsertDocFilePath);
027//ファイルのページ数
028var numAllPageA = ActivDoc.numPages;
029var numAllPageB = InsertDoc.numPages;
030//マージ側のPDFは閉じておく
031InsertDoc.closeDoc({ bNoSave: true });
032//インサートPDFを元のPDFの後方に全ページインサートしておく
033ActivDoc.insertPages({
034  nPage: (numAllPageA - 1),
035  cPath: strInsertDocFilePath,
036  nStart: 0,
037  nEnd: (numAllPageB - 1)
038});
039//ページを交互になるように移動
040if (numAllPageA >= numAllPageB) {
041  for (var numPageNo = 0; numPageNo < numAllPageB; numPageNo++) {
042    //console.println(numPageNo);
043    var numOrgPos = numAllPageA + numPageNo;
044    //console.println(numOrgPos);
045    var numInsPos = (numPageNo * 2);
046    console.println(numInsPos);
047    this.movePage({
048      nPage: numOrgPos,
049      nAfter: numInsPos
050    });
051
052  }
053}
054  //ページを交互になるように移動
055else if (numAllPageB > numAllPageA) {
056  for (var numPageNo = 0; numPageNo < numAllPageA; numPageNo++) {
057    //console.println(numPageNo);
058    var numOrgPos = numAllPageA + numPageNo;
059    //console.println(numOrgPos);
060    var numInsPos = (numPageNo * 2);
061    console.println(numInsPos);
062    this.movePage({
063      nPage: numOrgPos,
064      nAfter: numInsPos
065    });
066
067  }
068}
069
070//【C】のパスに保存
071this.saveAs({ cPath: strSaveDocFilePath, bCopy: true, bPromptToOverwrite: true });
072this.closeDoc({ bNoSave: true });
073//【C】のマージ済みファイルを開く
074var objMergedPDFdoc = app.openDoc(strSaveDocFilePath);
075if (objMergedPDFdoc) {
076  app.execMenuItem("ShowHideThumbnails");
077  app.execMenuItem("ShowRulers");
078  this.viewState = { overViewMode: 2 };
079  console.println("ファイルがオープンしました。");
080} else {
081  console.println("ファイルのオープンに失敗しました。");
082}
AppleScriptで生成しました

|

[Acrobat] 文字コード別の外部Javascriptファイルの読み込み

MacOS(S-jis)
UTF8(UTF-8)
UTF16(UTF16)



ダウンロード - dojs.zip




MacOS(S-jis)

サンプルコード

サンプルソース(参考)
行番号ソース
001tell application "Adobe Acrobat"
002  activate
003  try
004    do script (read file aliasJsFilePath as string)
005  on error
006    return "Js実行でエラーしました"
007  end try
008end tell
AppleScriptで生成しました

UTF8(UTF-8)

サンプルコード

サンプルソース(参考)
行番号ソース
001tell application "Adobe Acrobat"
002  activate
003  try
004    do script (read file aliasJsFilePath as «class utf8») as text
005  on error
006    return "Js実行でエラーしました"
007  end try
008end tell
AppleScriptで生成しました

UTF16(UTF16)

サンプルコード

サンプルソース(参考)
行番号ソース
001 (refMe's NSUTF16StringEncoding)
AppleScriptで生成しました

|

[Acrobat]PDFページの書き出し ページ数指定


サンプルコード

サンプルソース(参考)
行番号ソース
001//【設定項目】入力ファイルパス
002var strActivDocFilePath = "/Users/Shared/Desktop/AB.pdf";
003// 【設定項目】保存先ディレクトリパス
004var strSaveDirPath = "/Users/Shared/Desktop/";
005//【設定項目】何ページ毎で別ファイルにするか?
006var numSepPageNo = 2;
007//開く=処理されるファイルを指定する
008var fileActivDoc = app.openDoc(strActivDocFilePath);
009//ページ数を数えて
010var numAllPage = fileActivDoc.numPages;
011//numSepPageNo毎に処理する
012for (var numPageNo = 0; numPageNo < numAllPage; numPageNo += numSepPageNo) {
013//最初のページ
014  var numFirstPage = numPageNo;
015//最後のページ
016  var numLastPage = numPageNo + (numSepPageNo - 1);
017//ファイル名用のテキスト(最初のページ)
018  var strFirstPage = (numFirstPage + 1).toString();
019//ファイル名用のテキスト(最後のページ)
020  var strLastPage = (numLastPage + 1).toString();
021//保存用のファイル名を定義
022  var strSaveFileName = (strFirstPage + "_" + strLastPage + ".pdf");
023//書き出し用のパスを定義
024  var strSaveFilePath = (strSaveDirPath + strSaveFileName);
025//本処理書き出し
026  fileActivDoc.extractPages({ nStart: numFirstPage, nEnd: numLastPage, cPath: strSaveFilePath });
027};
028//開いたドキュメントを閉じる
029fileActivDoc.closeDoc({ bNoSave: true });
AppleScriptで生成しました

コンソール用の1行ワンライナー
サンプルコード

サンプルソース(参考)
行番号ソース
001var strActivDocFilePath = "/Users/Shared/Desktop/AB.pdf"; var strSaveDirPath = "/Users/Shared/Desktop/"; var numSepPageNo = 2; var fileActivDoc = app.openDoc(strActivDocFilePath); var numAllPage = fileActivDoc.numPages; for (var numPageNo = 0; numPageNo < numAllPage; numPageNo += numSepPageNo) { var numFirstPage = numPageNo; var numLastPage = numPageNo + (numSepPageNo - 1); var strFirstPage = (numFirstPage + 1).toString(); var strLastPage = (numLastPage + 1).toString(); var strSaveFileName = (strFirstPage + "_" + strLastPage + ".pdf"); var strSaveFilePath = (strSaveDirPath + strSaveFileName); fileActivDoc.extractPages({ nStart: numFirstPage, nEnd: numLastPage, cPath: strSaveFilePath }); }; fileActivDoc.closeDoc({ bNoSave: true });
AppleScriptで生成しました

Windows用のコンソール用のワンライナー
サンプルコード

サンプルソース(参考)
行番号ソース
001var strActivDocFilePath = "c:/Users/SOME_USER/Desktop/AB.pdf"; var strSaveDirPath = "c:/Users/SOME_USER/Desktop/"; var numSepPageNo = 2; var fileActivDoc = app.openDoc(strActivDocFilePath); var numAllPage = fileActivDoc.numPages; for (var numPageNo = 0; numPageNo < numAllPage; numPageNo += numSepPageNo) { var numFirstPage = numPageNo; var numLastPage = numPageNo + (numSepPageNo - 1); var strFirstPage = (numFirstPage + 1).toString(); var strLastPage = (numLastPage + 1).toString(); var strSaveFileName = (strFirstPage + "_" + strLastPage + ".pdf"); var strSaveFilePath = (strSaveDirPath + strSaveFileName); fileActivDoc.extractPages({ nStart: numFirstPage, nEnd: numLastPage, cPath: strSaveFilePath }); }; fileActivDoc.closeDoc({ bNoSave: true });
AppleScriptで生成しました

|

[PDF]PDFページの交互マージ


前提条件 元ファイル マージするファイル両方とも同じページ数であること
サンプルコード

サンプルソース(参考)
行番号ソース
001//【A】入力ファイル 元ファイル
002var strActivDocFilePath ="/Users/some_user/Desktop/input.pdf";
003//【B】マージファイル 挿入ファイル
004var strInsertDocFilePath ="/Users/some_user/Desktop/merge.pdf";
005//【C】出力ファイル 保存先
006var strSaveDocFilePath = "/Users/some_user/Desktop/save.pdf";
007//【A】のファイルを開く
008var fileActivDoc = app.openDoc(strActivDocFilePath);
009//【A】のファイルのページ数
010var numAllPage = this.numPages;
011//【A】のページ数 ゼロスタート値
012var numPageZero = numAllPage - 1;
013//ループ 最後のページから最初のページに向かって
014for (numPageZero; numPageZero >= 0; numPageZero--) {
015  //【B】の指定ページを挿入
016this.insertPages({ cPath: strInsertDocFilePath, nPage: numPageZero, nStart: numPageZero, nEnd: numPageZero });
017}
018//【C】のパスに保存
019this.saveAs({ cPath: strSaveDocFilePath, bCopy: true, bPromptToOverwrite: true });
020
021
AppleScriptで生成しました

WINDOWS用のパス指定
サンプルコード

サンプルソース(参考)
行番号ソース
001var strActivDocFilePath ="c:/Users/SOME_USER/Desktop/A.pdf";var strInsertDocFilePath ="c:/Users/SOME_USER/Desktop/B.pdf";var strSaveDocFilePath = "c:/Users/SOME_USER/Desktop/save.pdf";var fileActivDoc = app.openDoc(strActivDocFilePath);var numAllPage = this.numPages;var numPageZero = numAllPage - 1;for (numPageZero; numPageZero >= 0; numPageZero--) {this.insertPages({ cPath: strInsertDocFilePath, nPage: numPageZero, nStart: numPageZero, nEnd: numPageZero });}this.saveAs({ cPath: strSaveDocFilePath, bCopy: true, bPromptToOverwrite: true });
AppleScriptで生成しました

|

[Acrobat]見開きページ 左右に分割別ページに



ダウンロード - croppageas.zip




AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#右から左用
005#AcrobatにJSを渡すだけのスクリプト
006#com.cocolog-nifty.quicktimer.icefloe
007----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
008use AppleScript version "2.8"
009use framework "Foundation"
010use framework "UniformTypeIdentifiers"
011use framework "AppKit"
012use scripting additions
013property refMe : a reference to current application
014
015#####################
016#ファイルオープン
017#####################
018tell application "Adobe Acrobat"
019  activate
020  tell active doc
021    tell PDF Window 1
022      try
023        set numAllPages to count of every page
024        set boolError to false as boolean
025      on error
026        display alert "エラー:pdfを開いていません" buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 10
027        set boolError to true as boolean
028      end try
029    end tell
030  end tell
031end tell
032if boolError is true then
033  set appFileManager to refMe's NSFileManager's defaultManager()
034  set strName to (name of current application) as text
035  if strName is "osascript" then
036    tell application "Finder" to activate
037  else
038    tell current application to activate
039  end if
040  set appFileManager to refMe's NSFileManager's defaultManager()
041  set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
042  set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
043  set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
044  set listUTI to {"com.adobe.pdf"}
045  set strMes to ("ファイルを選んでください") as text
046  set strPrompt to ("ファイルを選んでください") as text
047  try
048    set aliasFilePath to (choose file strMes with prompt strPrompt default location (aliasDefaultLocation) of type listUTI with invisibles and showing package contents without multiple selections allowed) as alias
049  on error
050    log "エラーしました"
051    return "エラーしました"
052  end try
053  tell application "Adobe Acrobat"
054    open file aliasFilePath
055  end tell
056  
057end if
058#####################
059#本処理JS実行
060#####################
061
062set strJs to ("var strActivDocFilePath = this.path;var strBaseFileName = strActivDocFilePath.lastIndexOf(\".\");var strSaveFilePath = strActivDocFilePath.substring(0, strBaseFileName) + \".分割済\" + strActivDocFilePath.substring(strBaseFileName);var numAllPage = this.numPages;for (var makePageNo = numAllPage - 1; makePageNo >= 0; makePageNo--) {this.insertPages({ cPath: strActivDocFilePath, nPage: makePageNo, nStart: makePageNo, nEnd: makePageNo });}var numAllPage = this.numPages;for (var nPage = 0; nPage < numAllPage; nPage++) {var numPageRotation = this.getPageRotation(nPage);var rectCropBox = this.getPageBox(\"Crop\", nPage);var CropBoxSizeHeight = rectCropBox[1];var CropBoxSizeWidth = rectCropBox[2];var strPrintPageNo = (nPage + 1);if (numPageRotation == 0) {console.println(\"ページ番号: \" + strPrintPageNo + \"\t回転: \" + numPageRotation + \"\t天地/上下\");if (nPage % 2 === 0) {var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });} else {var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });}}else if (numPageRotation == 90) {console.println(\"ページ番号: \" + strPrintPageNo + \"\t回転: \" + numPageRotation + \"\t天地/右左\");if (nPage % 2 === 0) {var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });} else {var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });}}else if (numPageRotation == 180) {console.println(\"ページ番号: \" + strPrintPageNo + \"\t回転: \" + numPageRotation + \"\t天地/下上\");if (nPage % 2 === 0) {var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });} else {var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });}}else if (numPageRotation == 270) {console.println(\"ページ番号: \" + strPrintPageNo + \"\t回転: \" + numPageRotation + \"\t天地/左右\");if (nPage % 2 === 0) {var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });} else {var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];this.setPageBoxes({ cBox: \"Trim\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });this.setPageBoxes({ cBox: \"Crop\", nStart: nPage, nEnd: nPage, rBox: rectSetCropRectBox });}}else {console.println(\"エラーPDFのページ回転構造に問題があります\"); console.println(\"ページ番号: \" + strPrintPageNo + \"\t回転: \" + numPageRotation);}}this.saveAs({ cPath: strSaveFilePath, bCopy: true, bPromptToOverwrite: true });this.closeDoc({ bNoSave: true });app.openDoc({ cPath: strSaveFilePath })") as text
063
064#処理は全てJSにまかせてある
065tell application "Adobe Acrobat"
066  activate
067  tell active doc
068    tell front PDF Window
069      do script strJs
070    end tell
071  end tell
072end tell
073
074
AppleScriptで生成しました

|

[Javascript]ページ分割(ページ複製→ページCROP)


サンプルコード

サンプルソース(参考)
行番号ソース
001console.println("\n");
002//開いているPDFのファイルパス
003var strActivDocFilePath = this.path;
004console.println("ファイルパス: " + strActivDocFilePath);
005//最後のカンマまでのキャラクタ数
006var numCntLastDot = strActivDocFilePath.lastIndexOf(".");
007console.println("拡張子までの文字数: " + numCntLastDot);
008//ドットと拡張子
009var strExtension = strActivDocFilePath.substring(numCntLastDot);
010console.println("拡張子: " + strExtension);
011//最初のドットまでのパス ベースファイルまでのパス
012var strBaseFilePath = strActivDocFilePath.substring(0, numCntLastDot);
013console.println("ベースパス: " + strBaseFilePath);
014//保存先ファイルパス
015var strSaveFilePath = strBaseFilePath + ".分割済" + strExtension;
016console.println("保存先ファイルパス: " + strSaveFilePath);
017//初期ページ数
018var numAllPage = this.numPages;
019console.println("初期ページ数: " + numAllPage);
020//初期ページ数 0スタート
021var numPageZero = numAllPage - 1;
022console.println("初期ページ数zero: " + numPageZero);
023//ゼロスタートのページ数でループ
024for (numPageZero; numPageZero >= 0; numPageZero--) {
025  console.println(numPageZero);
026  //ページの複製
027  this.insertPages({ cPath: strActivDocFilePath, nPage: numPageZero, nStart: numPageZero, nEnd: numPageZero });
028}
029//複製後の総ページ数
030var numAllPage = this.numPages;
031//複製後のページ数だけ繰り返す
032for (var numPage = 0; numPage < numAllPage; numPage++) {
033  //ページの回転を取得して
034  var numPageRotation = this.getPageRotation(numPage);
035  //CROP BOXのRECTを取得
036  var rectCropBox = this.getPageBox("Crop", numPage);
037  //PageBoxはページの回転を反映している
038  console.println(rectCropBox);
039  //幅
040  var CropBoxSizeWidth = rectCropBox[2];
041  //縦
042  var CropBoxSizeHeight = rectCropBox[1];
043  //ゼロページに1足して実ページ番号
044  var strPrintPageNo = (numPage + 1);
045  //左右の分割はPageBOXが回転を反映後の値なので同じ内容で良いのですが
046  //処理の内容をわかりやすくするように記述している
047  //【0】ページの回転に合わせての分岐
048  if (numPageRotation == 0) {
049    console.println("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/上下");
050    //左右の分割
051    if (numPage % 2 === 0) {
052      var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];
053      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
054      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
055    } else {
056      var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];
057      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
058      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
059    }
060    //【90】ページの回転に合わせての分岐
061  } else if (numPageRotation == 90) {
062    console.println("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/右左");
063    //左右の分割
064    if (numPage % 2 === 0) {
065      var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];
066      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
067      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
068    } else {
069      var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];
070      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
071      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
072    }
073    //【180】ページの回転に合わせての分岐
074  } else if (numPageRotation == 180) {
075    console.println("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/下上");
076    //左右の分割
077    if (numPage % 2 === 0) {
078      var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];
079      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
080      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
081    } else {
082      var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];
083      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
084      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
085    }
086    //【270】ページの回転に合わせての分岐
087  } else if (numPageRotation == 270) {
088    console.println("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/左右");
089    //左右の分割
090    if (numPage % 2 === 0) {
091      var rectSetCropRectBox = [rectCropBox[0], CropBoxSizeHeight, (CropBoxSizeWidth / 2), rectCropBox[3]];
092      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
093      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
094    } else {
095      var rectSetCropRectBox = [(CropBoxSizeWidth / 2), CropBoxSizeHeight, CropBoxSizeWidth, rectCropBox[3]];
096      this.setPageBoxes({ cBox: "\trim", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
097      this.setPageBoxes({ cBox: "Crop", nStart: numPage, nEnd: numPage, rBox: rectSetCropRectBox });
098    }
099    //【Error】Acrobatは回転360は無いのでエラー
100  } else {
101    console.println("エラーPDFのページ回転構造に問題があります");
102    console.println("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation);
103  }
104}
105//分割後のファイルを『別名で』保存 
106this.saveAs({ cPath: strSaveFilePath, bCopy: true, bPromptToOverwrite: true });
107//閉じる 未保存は保存
108this.closeDoc({ bNoSave: true });
109//保存したファイルを開く
110app.openDoc({ cPath: strSaveFilePath });
111
AppleScriptで生成しました

|

[JavaScript]Acrobat Javascript基本設定 (Win)

1:設定:Javascriptを有効にする
2:Scriptのインストール先を開く
3:ヘルプメニュー用のjsをインストール
4:コンソール(デバッガー)を開く
5:セキュリティ設定

1:設定:Javascriptを有効にする
20240909081305_2880x18002


2:Scriptのインストール先を開く
20240910014138_1726x6983


3:ヘルプメニュー用のjsをインストール

ダウンロード - addhelpmenu.win.js.zip




4:コンソール(デバッガー)を開く
20240910020606_2880x1800

コンソール起動用のPDF

ダウンロード - コンソールを開く.pdf




5:セキュリティ設定
ファイルのアクセスするディレクトリ ホームや書類フォルダは追加しておく
20240916055912_2514x1750



|

[JavaScript]Acrobat Javascript基本設定 (macOS)

1:設定:Javascriptを有効にする
2:Scriptのインストール先を開く
3:ヘルプメニュー用のjsをインストール
4:コンソール(デバッガー)を開く

1:設定:Javascriptを有効にする

20240909084016_1169x5662

2:Scriptのインストール先を開く

ダウンロード - インストール先を開く.applescript.zip



AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003# JavaScripts インストール先を開きます
004# com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006use AppleScript version "2.4"
007use framework "Foundation"
008use framework "AppKit"
009use scripting additions
010
011property refMe : a reference to current application
012
013set appFileManager to refMe's NSFileManager's defaultManager()
014set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSApplicationSupportDirectory) inDomains:(refMe's NSUserDomainMask))
015set ocidApplicatioocidupportDirPathURL to ocidURLsArray's firstObject()
016#DC
017set ocidJsDCPathURL to ocidApplicatioocidupportDirPathURL's URLByAppendingPathComponent:("Adobe/Acrobat/DC/JavaScripts") isDirectory:(true)
018#
019set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
020ocidAttrDict's setValue:(493) forKey:(refMe's NSFilePosixPermissions)
021set listBoolMakeDir to appFileManager's createDirectoryAtURL:(ocidJsDCPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference)
022##
023set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
024set boolDone to appSharedWorkspace's openURL:(ocidJsDCPathURL)
025if boolDone is true then
026  return "正常処理"
027else if boolDone is false then
028  log "DCフォルダ無し"
029end if
AppleScriptで生成しました

3:ヘルプメニュー用のjsをインストール

ダウンロード - addhelpmenu.js.zip



20240909101923_1282x392


4:コンソール(デバッガー)を開く

20240909101601_1710x4603


コンソール起動用のPDF

ダウンロード - コンソールを開く.pdf



ダウンロード - Jsコンソールを開く.zip




AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# com.adobe.Acrobat.Pro
005# com.adobe.Reader
006#
007#com.cocolog-nifty.quicktimer.icefloe
008----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
009use AppleScript version "2.8"
010use framework "Foundation"
011use scripting additions
012
013#####################################
014#####デバッガー コンソール起動
015#####################################
016
017###tell application id "com.adobe.Reader"
018tell application id "com.adobe.Acrobat.Pro"
019  launch
020  activate
021  do script "console.show();"
022  do script "console.clear();"
023end tell
024
025return
AppleScriptで生成しました

|

[Acrobat]ページの回転と天地向きを確認して各ページの値をコンソールに表示


サンプルコード

サンプルソース(参考)
行番号ソース
001console.println("\n"); var numAllPage = this.numPages; var strOutPut = ""; for (var nPage = 0; nPage < numAllPage; nPage++) { var numPageRotation = this.getPageRotation(nPage); var strPrintPageNo = (nPage + 1); if (numPageRotation == 0) { var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/上下\n"); } else if (numPageRotation == 90) { var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/右左\n"); } else if (numPageRotation == 180) { var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/下上\n"); } else if (numPageRotation == 270) { var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/左右\n"); } else { var strOutPut = strOutPut + ("エラーPDFのページ回転構造に問題があります\n"); var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\n"); } } var rectCropBox = this.getPageBox("Crop", 0); var CropBoxSizeHeight = rectCropBox[1] - rectCropBox[0] - 36; var CropBoxSizeWidth = rectCropBox[2] - rectCropBox[3] - 36; console.clear(); console.println(strOutPut);
AppleScriptで生成しました

|

[Acrobat]ページの回転と天地向きを確認して各ページの値を注釈に残す(コンソール・Windows用)



ダウンロード - 回転チェック4注釈.js.zip



ダウンロード - 回転チェック1ライナー.js.txt.zip




1行コンソール用のワンライナー
サンプルコード

サンプルソース(参考)
行番号ソース
001console.println("\n");var numAllPage = this.numPages;var strOutPut = "";for (var nPage = 0; nPage < numAllPage; nPage++) {var numPageRotation = this.getPageRotation(nPage);var strPrintPageNo = (nPage + 1);if (numPageRotation == 0) {var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/上下\n");} else if (numPageRotation == 90) {var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/右左\n");} else if (numPageRotation == 180) {var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/下上\n");} else if (numPageRotation == 270) {var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/左右\n");} else {var strOutPut = strOutPut + ("エラーPDFのページ回転構造に問題があります\n");var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\n");}}var rectCropBox = this.getPageBox("Crop", 0);var CropBoxSizeHeight = rectCropBox[1] - rectCropBox[0] - 36;var CropBoxSizeWidth = rectCropBox[2] - rectCropBox[3] - 36;console.println(strOutPut);this.addAnnot({page: 0,type: "Text",print:false,point: [CropBoxSizeWidth, CropBoxSizeHeight],name: "PDFページの回転チェック",author: "PDFページの回転チェック",subject: "PDFページの回転チェック",contents: strOutPut,noteIcon: "Help"});
AppleScriptで生成しました

コメント入り
サンプルコード

サンプルソース(参考)
行番号ソース
001//コンソールの可読性確保の改行
002console.println("\n");
003//ページ数
004var numAllPage = this.numPages;
005//出力用テキストの初期化
006var strOutPut = "";
007//ページ数だけ順番に処理
008for (var nPage = 0; nPage < numAllPage; nPage++) {
009//回転の値を取る
010  var numPageRotation = this.getPageRotation(nPage);
011//カウントアップして実ページ数
012  var strPrintPageNo = (nPage + 1);
013//回転の値に合わせて処理
014  if (numPageRotation == 0) {
015    var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/上下\n");
016  } else if (numPageRotation == 90) {
017    var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/右左\n");
018  } else if (numPageRotation == 180) {
019    var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/下上\n");
020  } else if (numPageRotation == 270) {
021    var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\t天地/左右\n");
022  } else {
023    var strOutPut = strOutPut + ("エラーPDFのページ回転構造に問題があります\n");
024    var strOutPut = strOutPut + ("ページ番号: " + strPrintPageNo + "\t回転: " + numPageRotation + "\n");
025  }
026}
027//1ページ目の右上のXY値
028var rectCropBox = this.getPageBox("Crop", 0);
029var CropBoxSizeHeight = rectCropBox[1] - rectCropBox[0] - 36;
030var CropBoxSizeWidth = rectCropBox[2] - rectCropBox[3] - 36;
031//コンソールにログを出す
032console.println(strOutPut);
033//1ページ目に注釈を入れる
034this.addAnnot({
035  page: 0,
036  type: "Text",
037  print:false,
038  point: [CropBoxSizeWidth, CropBoxSizeHeight],
039  name: "PDFページの回転チェック",
040  author: "PDFページの回転チェック",
041  subject: "PDFページの回転チェック",
042  contents: strOutPut,
043  noteIcon: "Help"
044});
045
046//ダイアログの入力欄に戻す場合
047var result = app.response({
048  cDefault: strOutPut,
049  cQuestion: "ページ回転と天地\n↓右クリックからコピーしてください↓",
050  cTitle: "ページ情報"
051});
052
053//アラートに戻す場合
054app.alert(strOutPut);
AppleScriptで生成しました

|

より以前の記事一覧

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe FDKO Adobe RemoteUpdateManager AppKit Apple AppleScript AppleScript do shell script AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript System Events AppleScript System Events Plist AppleScript Video Applications AppStore Archive Attributes Automator BackUp Barcode Barcode QR Barcode QR Decode Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome CIImage CityCode CloudStorage Color com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Device Diff Disk Dock DropBox Droplet eMail Encode % Encode Decode Encode UTF8 Error EXIFData ffmpeg File Finder Firefox Folder FolderAction Fonts GIF github Guide HTML HTML Entity Icon Illustrator Image Events Image2PDF ImageOptim iPhone iWork Javascript Jedit Json Label Leading Zero List locationd LRC lsappinfo LSSharedFileList m3u8 Mail MakePDF Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Mouse Music NetWork Notes NSArray NSArray Sort NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSColor NSColorList NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSPrintOperation NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth OneDrive PDF PDFAnnotation PDFAnnotationWidget PDFContext PDFDisplayBox PDFDocumentPermissions PDFImageRep PDFKit PDFnUP PDFOutline perl Photoshop PlistBuddy pluginkit postalcode PostScript prefPane Preview Python QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver SF Symbols character id SF Symbols Entity sips Skype Slack Sound Spotlight sqlite SRT StandardAdditions Swift System Settings TCC TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code VMware Fusion Wacom webarchive webp Wifi Windows XML XML EPUB XML OPML XML Plist XML RSS XML savedSearch XML SVG XML TTML XML webloc XML XMP YouTube zoom