Acrobat Distiller をコマンドで起動

Mac OS X Mountain Lion で Acrobat XI Pro を使用しています。


Acrobat Distiller をコマンドラインで起動する方法を Acrobat Web で検索して

AcroDit.exe /o inFile.ps outFile.pdf

を見つけたのですが、Windows 用です。Mac 用が見つからない。

(質問1)

/Applications/Adobe Acrobat XI Pro/Acrobat Distiller.app がありますす。

例えば AcroDit /o inFile.ps outFile.pdf  のような形でコマンドラインで起動する方法をお教えねがいます。


(質問2)

goodle で検索しところ次が見つかった。

http://www.tug.org/pipermail/macostex-archives/2010-February/042766.html

これに従ってファイルを作った。

acrodist.scpt

-------------

on run argv

with timeout of (8 * 60) seconds

tell application "Acrobat Distiller"

Distill sourcePath item 1 of argv

end tell

end timeout

end run

-------------


acrodist

------------

#! /bin/sh

osascript ~/bin/acrodist.scpt $1

------------


実行結果

satouy$ ./acrodist

dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/osascript) is code signed with entitlements

/Users/satouy/bin/acrodist.scpt:92:140: execution error: Can’t get item 1 of {}. (-1728)

エラーが発生します。解決方法を教えていただけないでしょうか?

AppleScript は初めてなのでよろしくお願いします。

Mac Pro (Mid 2012), OS X Mountain Lion (10.8.2)

投稿日 2013/04/06 17:19

返信
返信: 17

2013/04/06 17:46 satouy への返信

失礼致します。 私はAcrobat XI Proを使ったことがないのですが、『コマンドライン』とは、そのアプリケーションに付属している機能のひとつなのでしょうか? (勘違いしているかもしれませんが)


Terminal.appのコマンドラインでアプリケーションを起動するには、openコマンドを使います。 書式は、 open -a アプリケーションの名前 で、Acrobat Distiller.appの場合は、


open -a Acrobat Distiller


で起動できますよ。 ファイルをそのアプリで開くには、アプリケーションの名前の後にファイル名を加えます(ファイルへのパスの指定も必要です)。 詳しくは、man open でopenコマンドの説明を参照して下さい。


AppleScriptの場合は、


tell application ”Acrobat Distiller" to launch か、 tell application "Acrobat Distiller" to activate で起動できますよ。  詳しくはAppleScript Editorのヘルプメニューを参照して下さい。

2013/04/06 17:46 satouy への返信

> /Users/satouy/bin/acrodist.scpt:92:140: execution error: Can’t get item 1 of {}. (-1728)


このエラーは、

$ ./acrodist

で実行しているからでは?

$./acrodist inFile.ps

とかしてみるとか。

とにかく、スクリプト内に$1としているので、実行時の入力ファイルを指定する必要があると思います。inFile.ps はフルパスで指定する(/Users/satouy/inFile.ps とか)方が良いかもしれません。

2013/04/06 17:58 T22T への返信

済みません。 私は、Acrobat XI Proを使ったことがないばかりか、Acrobat Distillerがどのように機能するアップリケーションなのかも理解していません。 なので、何か、根本的な勘違いしていると思いますので、先の書き込みは、参考になさらない方がよいと思います。 お騒がせしました。済みません。

2013/04/06 18:21 T22T への返信

Acrobat Distillerがどのように機能するアップリケーションなのかも理解していません。


Acrobat Distillerは、PDFを書き出すためのソフトですがOS標準の書き出し機能と大きく違うのは細かい設定(フォントの埋め込みの有無や画像の解像度の指定など)ができることです。


AcroDit.exe /o inFile.ps outFile.pdf


これを見るに、実際に行いたいのはPSファイルをPDFで書き出したいということでしょうか?

細かい設定は必要なくただ書き出せればいいのであれば、OS標準のコマンドにpstopdfというのがあるのでそれを利用するという手もあるかと思います。詳細は、man pstopdfとすれば確認できます。

2013/04/06 19:42 HAL への返信

HAL 様、


pstopdf を実行しましたが、成功しませんでした。

$ pstopdf inFile.ps -o out.pdf

PsToPdf | converting ps (ps) into pdf

PsToPdf | conversion method 2

PsToPdf | converting inFile.ps bounded

PsToPdf | job aborted due to some error: Broken pipe

PsToPdf | file out.pdf does not exist


いろいろとありがとうございます。

2013/04/11 23:23 はに への返信

はに 様、


open -a "Acrobat Distiller" inFile.ps

で pdf ファイルを作ることができましたが、その後に Acrobat Distiller のタイトルがついたウィンドウが開かれたままになります。マウスで閉じることができますが、閉じるコマンドをお教え願います。

時間がたちましたがよろしくお願いします。

2013/04/12 23:11 T22T への返信

追記: 失礼致します。


1)私もHALさんが紹介して下さったpstopdfコマンドを使う方法が最も簡単だと思います。 試しに画像ファイルをプレビュー.appの印刷コマンドにあるPostScript形式で保存させて、pstopdfコマンドで正常にpdfに変換できることを確認しました。 pstopdf inFile.ps だけで実行してみるとどうでしょう?


2)acrodistのshell scriptを実行する場合は、引数($1)にファイル名を指定する必要があります。 また、acrodist.scptのAppleScriptでDistllコマンドを使う場合は、sourcePathを指定する必要があります。 これをコマンドラインから指定するのは、(私には)難しい処理が必要です。 変換する画像ファイルがあるディレクトリに移動してshell scriptを実行するという手間のかかる方法であれば、以下のshell scriptとAppleScriptで可能だと思います。



./acrodist inFile.ps で実行すると、カレントディレクトリに、inFile.pdfが作成されるもとの思います(未確認ですが)。



acrodist

——————————————

#!/bin/sh

sourcePath=`pwd`

osascript ~/bin/acrodist.scpt $sourcePath $1

——————————————-


acrodist.scpt

-------------

on run argv

set sourcePath to (item 1 of argv) as POSIX file


with timeout of (8 * 60) seconds

tell application "Acrobat Distiller"

Distill (sourcePath as string) & “:” & (item 2 of argv)

end tell

end timeout

end run

-------------

2013/04/12 23:29 T22T への返信

済みません。 少し簡単な方法に気付きました。


acrodist

——————————————


#!/bin/sh

sourcePath=`pwd`/$1

osascript ~/bin/acrodist.scpt $sourcePath


——————————————


acrodist.scpt

-------------

on run argv

set sourcePath to (item 1 of argv) as POSIX file


with timeout of (8 * 60) seconds

tell application "Acrobat Distiller"

Distill (sourcePath as string)

end tell

end timeout

end run

-------------

2013/04/13 00:13 T22T への返信

かなり古い記事になりますが、Acrobat Distiller ってちょっとへんてこりんみたいですよ。現在では修正されたのかもしれませんが、こういうアプリは辞書と現物を見ながらスクリプトを作らないと上手く行かないと思います。


Acrobat Distillerとの戦い

http://piyo.piyocast.com/piyocolumn/2006/acrobat_distiller.html


open コマンドで上手く行ったのなら、無理して AppleScript でやらない方がよさそう。


ーーーーー


あと、ウインドウを閉じる...ですが、こんな感じかしら?


最前面ウインドウを閉じる

osascript -e 'tell application "Acrobat Distiller" to close document 1'


全ウインドウを閉じる

osascript -e 'tell application "Acrobat Distiller" to close documents'


Acrobat Distiller を終了する

osascript -e 'tell application "Acrobat Distiller" to quit'


で、document がだめなら window にしてみるとか...。


ーーーーー


大量のファイルを一括で...というならまだしも、1ファイルのみの変換だったら普通に GUI からやった方が速いと思います。というか、私ならそうします。

2013/04/13 02:20 Hiro__S への返信

Hiro.S 様


ありがとうございます。

ターミナルからpdf を作るコマンドを入力後、

osascript -e 'tell application "Acrobat Distiller" to quit'

を入力すると閉じるので成功です。

しかし、次のスクリプトにすると「現在、ファイルの変換中です。終了しますか?」のメッセージのウインドウが開きます。

------------

#!/bin/sh

open -a "Acrobat Distiller" "$@"

osascript -e 'tell application "Acrobat Distiller" to quit'

------------


ある時間を待ってから、閉じるコマンドを実行する必要があることが分かりました。

google で調べると、Mac OS X には、timeout のコマンドがないらしい、なかなか難しいものです。

2013/04/13 03:14 T22T への返信

T22T さん


いえいえ、謝る必要なんてありませんよ。私が言いたかったのは "Acrobat Distiller" が特殊かもしれないということ。そうだとすると、一般的な書き方では動かない可能性があるということです。T22T さんの折角の努力が無駄になるような気がしたんです。


ーーーー


satouy さん


処理が終わったら閉じるというなら冒頭の AppleScript ですかね。ただ、"Acrobat Distiller" の AppleScript はちょっと特殊かもしれないので、辞書を見ながらご自分でやるしかないかもです。


ちなみに、AppleScript を引数付きで Terminal から実行する方法はこんな感じです。分かりやすいように Finder で説明します。


-- osa.scpt

on run argv -- argv はほかの言語でいうところの配列

tell application "Finder"

activate

repeat with i in argv -- ほかの言語でいうところの foreach 文

-- 処理内容

display dialog contents of i

-- ここでなんかやったり

end repeat

-- ここでなんかやったり

end tell

end run


Terminal からは

$ osascript /path/to/osa.scpt 引数1 引数2


あとは、これをシェルスクリプトにすれば良いわけです。


では頑張ってください。健闘を祈ります。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Acrobat Distiller をコマンドで起動

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。