0

そのため、より大きな Applescript の一部として一連の PDF を JPEG ファイルにバッチ変換しようとしていますが、「PDF Open Options」のパラメータの一部が無視されていることがわかりました。つまり、「高さ」、「幅」、および「プロポーションを制限する」パラメーターです。

このコードは、Photoshop CS3 Scripting Guide から直接引用したものです (もちろん、ファイル名は変更されています)。

tell application "Adobe Photoshop CS3"
set myFilePath to alias "WABEL0457937:Users:Charles:Desktop:8925.pdf"
with timeout of 10000 seconds
open myFilePath as PDF with options {class:PDF open options, height:pixels 100, width:pixels 200, mode:RGB, resolution:72, use antialias:true, page:1, constrain proportions:false}
end timeout
end tell

結果のファイルでは、「解像度」は正しいですが、高さと幅は PDF の元の高さと幅に解像度を掛けて計算され、画像は元の縦横比に制限されます。

解像度と高さ/幅をピクセルで指定すると衝突するのではないかと思ったので、解像度を省略してみましたが、デフォルトで300になります。

PDFを開いてこれに遭遇するスクリプトを作成した人はいますか?

4

2 に答える 2

0

Photoshop CS3 の AS ディクショナリを見ると、PDF を開くオプションの高さ、幅、および縦横比を制限するプロパティは、CS2 以降すべて非推奨になっていると記載されています。(ただし、アドビに任せて、自分でクリーンアップしないようにして、インターフェースの不一致を助長します。)

于 2009-09-29T19:08:41.577 に答える
0

これを行うために私が取り組んだ方法は、シェル スクリプトを使用して 72DPI で PDF の解像度を決定し、ラスタライズして目的の寸法に到達するための最適な解像度を計算することでした。

(参考: "str_replace" は、文字列内のテキストを検索して置換するカスタム関数です。組み込みの Applescript 関数ではありません。)

set pageHeight to do shell script "/usr/bin/mdls -name kMDItemPageHeight " & quoted form of (POSIX path of this_item as string)
set pageHeight to my str_replace("kMDItemPageHeight = ", "", pageHeight)
set pageWidth to do shell script "/usr/bin/mdls -name kMDItemPageWidth " & quoted form of (POSIX path of this_item as string)
set pageWidth to my str_replace("kMDItemPageWidth = ", "", pageWidth)

if (pageHeight as number) is greater than (pageWidth as number) then
set pdf_resolution to round (1000 / (pageHeight as number) * 72) rounding up
else
set pdf_resolution to round (1000 / (pageWidth as number) * 72) rounding up
end if

open this_item as PDF with options {class:PDF open options, resolution:pdf_resolution, mode:RGB, use antialias:true, suppress warnings:false, use page number:true, page:1, crop page:media box}

「切り上げ」を使用して、結果が目標の解像度と同じかわずかに上回るようにしました。それは大まかな正確さですが、私が始めたものよりも優れています.

于 2009-09-30T17:02:53.560 に答える