InDesignの最近のブログ記事

11)ルビ処理支援WORDコピペ版

| コメント(4) | トラックバック(1)

協力(Twitterアカウント)
@KiwiBird2004 @monokano @ryusei3000 @AJABON

今回はみなさんに協力してもらいながら作りました。ありがとうございます。
いきさつは下に書いておきます。
=================================================

InDesignCS4(たぶんCS2〜CS6でも動く)で
選択されたテキストフレームか文字列をルビ処理します。

WORDからルビ付き文字をコピー&ペーストすると
誕生日(たんじょうび)のようになります。

その文字を選択するかテキストフレームを選択してスクリプトを実行するとルビがつきます。

オーバーフローテキストフレームは全ての文字をルビ処理します。

誕生日(たんじょうび)
なら誕生日にグループルビが付きます。

誕生日(たん.じょう.び)
なら誕生日にモノルビ"."区切りで付きます。
(普通こういうのは","区切りとかなのですがWindowsのテンキーでも打てるピリオドにしました。)
モノルビの場合、親文字の数とルビの数が合わない場合はエラーになります。

モノルビで親文字の数とルビの数が合わない場合

漢字、カタカナ、ひらがな、アルファベット数字にルビがつきます(インラインは不可)
親文字は同じ種類の文字の連続する部分までとなります。
先輩諸氏(しょし)なら、諸氏だけにルビがついてほしいですが、漢字の連続なので「先輩諸氏」に対してルビがつきます。

連結テキストフレームに関しては見えている部分のみ処理します。
全て処理したい時はテキスト選択で実行してください。

いきさつ
今回はINDD2012京都でルビ振りスクリプトを紹介したのですがそのスクリプトに対して
きぃうぃ(KiwiBird2004) ‏さんから
WORDからルビ付き文字をコピー&ペーストしたものに対応できませんか?というツイートがありました。
「誕生日(たんじょうび)」こんな感じのテキストになるのですが、
ルビの親文字はどこまでか判定しないといけないので少し手間取るなと思いましたが
面白そうとのことで
流星光輝 ‏@ryusei3000さん
ものかの ‏@monokanoさん
AJABON GRINSMITH ‏@AJABONさん
が一緒にやりましょうと協力してくれる事になりました。
テストや正規表現、エラー処理等ツイッターでやりとりしながら完成したスクリプトになります。
わたしひとりで作った物ではないのですがオープンソースという事で自由に改訂してもらえればと思いますが
改訂した物をアップする際はソースも公開してください。

ダウンロードはこちら
ruby05.zip

InDesign56
101個目のスクリプト

■■■このスクリプトについて■■■
InDesignCS4でドキュメントの選択されたグループを新規ドキュメントに複製します。CS5.5でも動作確認。

■■■使い方■■■
グループオブジェクトを選択します。
スクリプトパレットの「このスクリプト」をダブルクリックします。
新規ドキュメントが作られ、余白の真ん中にグループが配置されます。(余白は10。ptかmmはドキュメント依存)

■■■どんな時に使うか■■■
カタログなどで一個一個別々のPDFを作ってほしいと頼まれた場合便利です。

下は選択されたグループ

下のように新規ドキュメントに配置される

画像は作った五色百人一首のゲームアプリです。

ダウンロードはこちら
dup_group.zip

InDesign55

var motoDocu = app.activeDocument;
var mysele = motoDocu.selection;
var myGCount = motoDocu.selection.length;

for(var i = 0;i < myGCount;i++){
    var sele2 = motoDocu.selection[i];
    var myB = sele2.geometricBounds;
    var myH = myB[2] - myB[0];
    var myW = myB[3] - myB[1];
    
    var newdocu = app.documents.add();
    newdocu.documentPreferences.pageWidth = myW + 20;
    newdocu.documentPreferences.pageHeight = myH + 20;
    var newObj = sele2.duplicate(newdocu.pages[0],[0,0]);
    var newB = newObj.geometricBounds;
    newObj.move(undefined,[-(newB[1])+10,-newB[0]+10]);
}

ちょっとソースは恥ずかしい・・・

このスクリプトで100個目!INDD2012 KYOTO 20121130記念

30)InDesignの配置に色付け

| コメント(0) | トラックバック(0)

■■■このスクリプトについて■■■
InDesignCS4でドキュメントに配置された画像にFinderでラベルを付けます。(CS2でも動作確認)Mac専用です。

■■■使い方■■■
スクリプトパレットの「このスクリプト」をダブルクリックします。
ラベルの色を聞いてきますので選択してください。
Finderで配置されている画像にラベルがついていきます。

ダウンロードはこちら
setlabel.zip

InDesign54

set my_result to choose from list {"なし", "レッド", "オレンジ", "イエロー", "グリーン", "ブルー", "パープル", "グレー"} with prompt "ラベルの色を選択"
if my_result is false then
	return
end if

set color_name to item 1 of my_result as string
if color_name is "なし" then
	set labelnum to 0
else if color_name is "レッド" then
	set labelnum to 2
else if color_name is "オレンジ" then
	set labelnum to 1
else if color_name is "イエロー" then
	set labelnum to 3
else if color_name is "グリーン" then
	set labelnum to 6
else if color_name is "ブルー" then
	set labelnum to 4
else if color_name is "パープル" then
	set labelnum to 5
else if color_name is "グレー" then
	set labelnum to 7
end if

tell application "Adobe InDesign CS4"
	tell document 1
		set mygraphics to all graphics
		set imgcount to count mygraphics
		repeat with N from 1 to imgcount
			tell item link of item N of mygraphics
				set Ppath to file path --配置画像の名前
				my getFileColor(Ppath)
			end tell
		end repeat
	end tell
end tell

on getFileColor(Ppath)
	global labelnum
	tell application "Finder"
		set label index of alias Ppath to labelnum
	end tell
end getFileColor

このスクリプトで99個

エントリー一覧

OpenID対応しています OpenIDについて
Powered by Movable Type 6.0.3
印刷会社、大阪の遊文舎