[AppleScript]アートボードサイズでカスタム用紙設定する
広告送稿もAiネイティブPDFになったし
デザイナーさんはディスティラーPDFを何に使っているのか?と思いき
よくある答えが、『サイズを小さくしたい』ってのが多い
メールに添付出来るサイズに…って事らしい。
今の現場はクラウドストレージがあるので
メールに添付する機会も以前より減っているようで
ディスティラーPDFの出番は、昔のように多くは無いのが今
デザイナーさんには、色々な小物をたのまれますが
何で?何のため?ってのも
たまに、あります。
でも
本人気がすむのでしょうから、作って上げる事が多い
『余白0』(ここで言う余白0は『用紙サイズ』と『印刷可能エリア』が同サイズの事)のPDFを
ディスティラーPDFで作るには
余白0のPPDが必要で、多くは『DS TRUEFLOW』か『Adobe PDF 9.0 J』を使って
https://force4u.cocolog-nifty.com/skywalker/2016/01/applescriptsps-.html
カスタムで用紙サイズを指定するわけです
が
何で?かしらんが(一応理由は聞いたが、要点を得なかった…苦笑)
ドライバーで指定で印刷したい(PS吐きたい)んだそうだ…
結果的には
葉書サイズのアートボードの場合
↓こんな風に、カスタム用紙サイズとして登録されます。
(*
Ai2CustompapersSize
全面にあるアートボートサイズで
プリンターの用紙設定をします。
(塗りたしサイズではありません)
20161224 初回作成
*)
---余白(設定項目)
set theLeft to "0" as text
set theRight to "0" as text
set theTop to "0" as text
set theBottom to "0" as text
---初期値(設定しなくてもOK)
set theId to "" as text
set theName to "" as text
---初期値(ここは設定しなくてもOK)
set thePrinter to " " as text
set theCustom to "TRUE" as text
set theWidth to "" as text
set theHeight to "" as text
----ユーザードメインの初期設定フォルダまでのパスを取得
set theUserPrefDirName to (path to preferences folder from user domain) as text
---バックアップ用のディレクトリを作成
try
make new folder at theUserPrefDirName with properties {name:"com.apple.print.custompapers.backup"}
end try
-----ファイル名やらディレクトリ名やら
set thePrefFile to (theUserPrefDirName & "com.apple.print.custompapers.plist") as text
set theBackupDir to (theUserPrefDirName & "com.apple.print.custompapers.backup") as text
set theBackupFileName to (theBackupDir & ":com.apple.print.custompapers.plist") as text
---日付け時間取得
set theTime to (do shell script "date '+%Y%m%d_%k%M%S'") as text
set theNewFileName to ("com.apple.print.custompapers.plist." & theTime & ".plist") as text
----ファイルをコピーしてからファイル名を変更する
tell application "Finder"
try
copy file thePrefFile to folder theBackupDir
delay 1
set the name of file theBackupFileName to theNewFileName
end try
end tell
---イラストレーター
tell application "Adobe Illustrator"
activate
---開いているドキュメント
tell current document
---全面のアードボード
tell artboard 1
---プロパティを取得
set theProp to properties
---アートボードを取得
set theRect to (artboard rectangle of theProp) as list
end tell
end tell
end tell
---各値を取得
set theWl to (item 1 of theRect) as number
set theHt to (item 2 of theRect) as number
set theWr to (item 3 of theRect) as number
set theHb to (item 4 of theRect) as number
---幅と高さを求める
set theWidthPx to theWl - theWr as number
set theHightPx to theHt - theHb as number
---Absolute value絶対値にする
if theWidthPx < 0 then set theWidthPx to -theWidthPx
if theHightPx < 0 then set theHightPx to -theHightPx
---幅と高さをミリに換算
set theWidthMM to (((theWidthPx / 72) * 25.4) as integer) as text
set theHeightMM to (((theHightPx / 72) * 25.4) as integer) as text
---書き込み用の値にする
set theWidth to (theWidthPx) as text
set theHeight to (theHightPx) as text
---書き込み用の値にする(タイトル用にミリ表記)
set theName to (theWidthMM & "x" & theHeightMM) as text
set theId to (theWidthMM & "x" & theHeightMM) as text
--------defaults write com.apple.print.custompapers
-----theName
set theNameCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add name -string \"" & theName & "\"" as text
set theNameCom to doReplace(theNameCom, "\"\"", "\"")
do shell script theNameCom
-----theId
set theIdCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add id -string \"" & theId & "\"" as text
set theIdCom to doReplace(theIdCom, "\"\"", "\"")
do shell script theIdCom
-----Printer
set thePrinterCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add printer -string \"" & thePrinter & "\"" as text
set thePrinterCom to doReplace(thePrinterCom, "\"\"", "\"")
do shell script thePrinterCom
-----Custom
set theCustomCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add custom -bool " & theCustom & "" as text
set theCustomCom to doReplace(theCustomCom, "\"\"", "\"")
do shell script theCustomCom
-----height
set theHeightCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add height -float " & theHeight & "" as text
set theHeightCom to doReplace(theHeightCom, "\"\"", "\"")
do shell script theHeightCom
-----width
set theWidthCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add width -float " & theWidth & "" as text
set theWidthCom to doReplace(theWidthCom, "\"\"", "\"")
do shell script theWidthCom
-----top
set theTopCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add top -float " & theTop & "" as text
set theTopCom to doReplace(theTopCom, "\"\"", "\"")
do shell script theTopCom
-----bottom
set theBottomCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add bottom -float " & theBottom & "" as text
set theBottomCom to doReplace(theBottomCom, "\"\"", "\"")
do shell script theBottomCom
-----left
set theLeftCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add left -float " & theLeft & "" as text
set theLeftCom to doReplace(theLeftCom, "\"\"", "\"")
do shell script theLeftCom
-----right
set theRightCom to "defaults write com.apple.print.custompapers \"" & theName & "\" -dict-add right -float " & theRight & "" as text
set theRightCom to doReplace(theRightCom, "\"\"", "\"")
do shell script theRightCom
return "Done"
--------------文字の置き換えサブルーチン
to doReplace(theText, theOrgStr, theNewStr)
set theOldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to theOrgStr
set theTmpList to every text item of theText
set AppleScript's text item delimiters to theNewStr
set theReplaceStr to theTmpList as text
set AppleScript's text item delimiters to theOldDelim
return theReplaceStr
end doReplace
インストール先はCS6ならこちら
で
ここから実行です
細かい
エラー制御していません。
| 固定リンク
「AdobeIllustrator」カテゴリの記事
- SDK 2022(2021.11.21)
- Illustrator on the web!(2021.10.26)
- Adobe Illustrator検定 マニアック(2021.07.04)
- 【過去記事訂正】AppleScriptでPDF書き出し(プリセット選択式)【その2】の2021年版(2021.03.06)
- [AppleScript]アートボードサイズでカスタム用紙設定する(2016.12.27)