プロパティのアクション
バージョンは Acrobat Standard DC (2022年2月頃)、Windows 11。
- 「JavaScriptを実行」で console.show(); を実行する
- しおりのプロパティ の アクション で JavaScriptを実行
- ページのプロパティ の アクション で JavaScriptを実行
IAC
- とりあえず動作することだけを確認したいのでエラー処理や終了方法は考慮しない
- AcroPDDoc.Close(), AcroAVDoc.Close(true), AcroApp.CloseAllDocs(), AcroApp.Hide(), AcroApp.Exit() など
VBA
- AcrobatのタブにPDF文書が表示されている状態で実行する
- エラー処理は気にしない
' Excel 2019, Windows 11, Acrobat Standard DC (2022年3月頃) ' 参照設定 ' Acrobat (Adobe Acrobat 10.0 Type Library) Option Explicit Public Sub JsoConsoleShow() #Const DebugVersion = False #If DebugVersion Then Dim avApp As Acrobat.AcroApp Dim avDoc As Acrobat.AcroAVDoc Dim pdDoc As Acrobat.AcroPDDoc #Else Dim avApp As Object Dim avDoc As Object Dim pdDoc As Object #End If Dim jso As Object Set avApp = VBA.Interaction.CreateObject("AcroExch.App") Set avDoc = avApp.GetActiveDoc() If avDoc Is Nothing Then Set avApp = Nothing Debug.Print "タブに文書が表示されている状態で実行してください" Exit Sub End If Set pdDoc = avDoc.GetPDDoc() pdDoc.OpenAVDoc("").BringToFront Set jso = pdDoc.GetJSObject() jso.console.Show jso.console.println "// 実行方法はテキストを範囲選択して Ctrl + Enter" Set jso = Nothing Set pdDoc = Nothing Set avDoc = Nothing Set avApp = Nothing End Sub
PowerShell
- このスクリプトを実行するとAcrobatがバックグラウンド プロセスに残る
- PowerShellのコンソールに貼り付けて実行
- エラー処理やCOMオブジェクトの解放を気にしてないので練習以外で実行しない
# PowerShell 5.1, Windows 11, Acrobat Standard DC (2022年3月頃) ## このスクリプトのファイル名 ## "%USERPROFILE%\Desktop\JsoConsole.ps1" ## エンコード ## UTF-8 (BOM付き) ## ショートカット(.lnk) ## リンク先(T): ## PowerShell.exe -NoLogo -NoExit -ExecutionPolicy RemoteSigned -File "%USERPROFILE%\Desktop\JsoConsole.ps1" ## 作業フォルダー(S): ## "" Set-StrictMode -Version Latest $gPDDoc = New-Object -ComObject "AcroExch.PDDoc" # $gPDDoc = [System.Activator]::CreateInstance([Type]::GetTypeFromProgID("AcroExch.PDDoc")) # PDFファイルのパス $filePath = "${env:USERPROFILE}\Desktop\白紙.pdf" ## $filePath = $args[0] Write-Host $filePath $null = $gPDDoc.Open($filePath) $null = $gPDDoc.OpenAVDoc("").BringToFront() $jso = $gPDDoc.GetJSObject() $jsoConsole = [Type]::GetType($jso).InvokeMember( "console", [System.Reflection.BindingFlags]::GetProperty, $null, $jso, $null ) [Type]::GetType($jsoConsole).InvokeMember( "show", [System.Reflection.BindingFlags]::InvokeMethod, $null, $jsoConsole, $null ) $null = [Type]::GetType($jsoConsole).InvokeMember( "println", [System.Reflection.BindingFlags]::InvokeMethod, $null, $jsoConsole, @("// 実行方法はテキストを範囲選択して Ctrl + Enter") ) $jsoConsole = $null $jso = $null $gPDDoc = $null [System.GC]::Collect()
%APPDATA%にあるフォルダに保存
バージョンは Acrobat Standard DC (2022年4月頃)、Windows 11。
- フォルダ
- ファイル名
- *.js (console_show.jsなど)
// Acrobat Standard DC (2022年4月頃), Windows 11 // メニューのヘルプの下に追加 app.addMenuItem({ cName: "MyNameConsoleShow", cUser: "console.show()", cParent: "Help", nPos: 0, cExec: "console.show();", cEnable: "true", cMarked: "", bPrepend: true });