« 2014年11月 | トップページ | 2015年1月 »

[MDLS]mdlsでフォントファミリー名を取得する

こちらLINKの記事で
書いたスクリプトを
複数選択処理可能にした版

フォントを選択する

フォントファミリー名を取得する

フォントファミリー名でフォルダーを作成する

フォントをフォルダ内に移動する


エラーになる場合
PS1フォント等でフォントのファイル名とフォントファミリー名が同一の場合
基本的にはTTとOTのフォント専用

不具合
mdlsが正しいフォントファミリー名を取得出来ない事がある


(*
MakeFolderMoveFont.scpt 20141230

mdls スポットライトのメタデータ呼び出しコマンドから
フォントファミリーネームを取得して
フォントファミリー名のフォルダーを作成して
その中にフォント入れます

フォントファミリー名の不具合の説明はこちら
https://force4u.cocolog-nifty.com/skywalker/2014/12/sourcehansans-1.html
*)
(*
Uniform Type Identifiers Reference フォント関係
詳しくはこちら
http://goo.gl/C9EhVx
public.font
public.truetype-font
com.adobe.postscript-font
com.apple.truetype-​datafork-suitcase-font
public.opentype-font
public.truetype-ttf-font
public.truetype-collection-​font
com.apple.font-suitcase
com.adobe.postscript-lwfn​-font
com.adobe.postscript-pfb-​font
com.adobe.postscript.pfa-​font

*)
-----ファインダー呼び出し
tell application "Finder"
activate
---ファイルを選択 TTF TTC OTF PS1のみ選べます Font Suitcase等は選べません
set objResult to ¬
choose file default location (path to fonts folder from user domain) ¬
of type ¬
{"public.truetype-ttf-font", "public.truetype-collection-font", "public.opentype-font", "com.apple.truetype-datafork-suitcase-font", "com.adobe.postscript-lwfn​-font"} invisibles true ¬
with multiple selections allowed without showing package contents

end tell
----繰り返しのはじまり
repeat with objFiles in objResult
----ファインダー処理
tell application "Finder"
----取得したファイルのエリアスを取得
set theFileIAlias to objFiles as alias
----ファイル名を取得
set theFontName to (name of (info for objFiles) as list) as text
----フォントがあるディレクトリを取得
set theFileDir to (container of objFiles) as text
----UNIXパスにしておきます
set theUnixFilePath to (POSIX path of theFileIAlias) as text
end tell
-----mdlsのコマンドを実行して格納
set theMdlsResult to do shell script "/usr/bin/mdls -name com_apple_ats_name_family \"" & theUnixFilePath & "\""
-----区切り文字を改行に設定
set AppleScript's text item delimiters to {"\r"}
-----改行毎のリストとして格納
set theResultList to (every text item of theMdlsResult) as list
-----区切り文字を戻す
set AppleScript's text item delimiters to {""}
-----何行あるか?(データ件数)を数える
set numListLine to (count of theResultList) as number

-----データ件数3件の場合ローカライズ名が無いと判断
if numListLine is 3 then
set theLineData to (item 2 of theResultList) as text
set theResultText to my doReplace(theLineData, "\t", "") as text
set theResultText to my doReplace(theResultText, "\"", "") as text
set theResultText to my doReplace(theResultText, " ", "") as text

-----データ件数4件の場合ローカライズ名があると判断
else if numListLine is 4 then
set theLineData to (item 3 of theResultList) as text
set theResultText to my doReplace(theLineData, "\t", "") as text
set theResultText to my doReplace(theResultText, "\"", "") as text
set theResultText to my doReplace(theResultText, " ", "") as text

else

end if
---------- JavaScript escapes を変換するために大文字のUを小文字に その後で4桁コードをCharacterEntityに変換
set theResultText to my doReplace(theResultText, "\\U", "\\u") as text
set thePregReplace to "php -r 'echo preg_replace(\"/\\\\\\u([0-9abcdef]{4})/\", \"&#x$1;\", \"" & theResultText & "\");'" as text
set theResultText to (do shell script thePregReplace) as text
----------その後でシングルバイトの2桁コードをCharacterEntityに変換
set thePregReplace to "php -r 'echo preg_replace(\"/\\\\\\u([0-9abcdef]{2})/\", \"&#x$1;\", \"" & theResultText & "\");'" as text
set theResultText to (do shell script thePregReplace) as text
----------デコード本処理 CharacterEntity をテキストに変換する
set theMbConvertEncoding to "php -r 'echo mb_convert_encoding(\"" & theResultText & "\", \"UTF-8\", \" HTML-ENTITIES \");'" as text
set theResultText to (do shell script theMbConvertEncoding) as text
-----ファインダー呼び出し
tell application "Finder"
try
-----取得したフォントファミリー名でフォルダーを作る
make new folder at (theFileDir) with properties ¬
{name:theResultText ¬
, owner privileges:read write ¬
, group privileges:read write ¬
, everyones privileges:read write ¬
, comment:theFontName ¬
, description:theFontName ¬
}
end try
end tell
-----ファインダー呼び出し
tell application "Finder"
try
-----フォルダーの中にフォントファイルを入れる
move (objFiles) to alias (theFileDir & theResultText & ":")
end try
end tell
-----ファインダー呼び出し
tell application "Finder"
activate
-----出来上がりフォルダを開く
open theFileDir
end tell

end repeat

---------文字の置き換えサブルーチン
to doReplace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end doReplace

「MakeFolderMoveFont.scpt.zip」をダウンロード


「MakeFolderMoveFont.scpt.rtf」をダウンロード

|

[SourceHanSans]源ノ角ゴシック その3

こちらLINKのつづき

フォント名 フォントファミリー名の
ローカライズ(各国語版)についてはこちらで書きましたが

これがマタ面倒の始まり
こちらLINKでもチロッと書きましたが
AppleScripts等でフォントをイジル場合
どうしても
一回はFontBookでアクティブにしないと…

OSX10.6.8のmdlsでフォントファミリーを取得すると
以下のようになる

Website_image00261230_212027

mdlsで取得するローカライズ名は
"\U6e90\U30ce\U89d2\U30b3\U3099\U30b7\U30c3\U30af JP Regular"
このように「\U」でエスケープされていますが
デコードすると
源ノ角ゴシック JP Regular 『Regular』!!
ファミリー名に「ウェイト」が付いてしまいます。

もちろん
Website_image00261230_212421

ファミリー名には「ウェイト」は含みません
10.6.8のバグかいなぁ?


フォント・ファミリー名を取得して
フォントファミリーの名称でフォルダを作成して
その中にフォントを入れる てなスクリプト

(*
com_apple_ats_name_family.scpt 20141230

mdls スポットライトのメタデータ呼び出しコマンドから
フォントファミリーネームを取得して
フォントファミリー名のフォルダーを作成して
その中にフォント入れます

フォントファミリー名の不具合の説明はこちら

*)

tell application "Finder"
-----ファインダー呼び出し
activate
---ファイルを選択 TTF TTC OTF のみ選べます PS1等は選べません
set theFile to ¬
choose file default location (path to fonts folder from user domain) ¬
of type ¬
{"public.truetype-ttf-font", "public.truetype-collection-font", "public.opentype-font"} invisibles true ¬
without showing package contents
----取得したファイルのエリアスを取得
set theFileIAlias to theFile as alias
----ファイル名を取得
set theFontName to (name of theFileIAlias) as text
----フォントがあるディレクトリを取得
set theFileDir to (container of theFile) as text
----UNIXパスにしておきます
set theUnixFilePath to (POSIX path of theFileIAlias) as text
end tell


-----mdlsのコマンドを実行して格納
set theMdlsResult to do shell script "/usr/bin/mdls -name com_apple_ats_name_family \"" & theUnixFilePath & "\""
-----区切り文字を改行に設定
set AppleScript's text item delimiters to {"\r"}
-----改行毎のリストとして格納
set theResultList to (every text item of theMdlsResult) as list
-----区切り文字を戻す
set AppleScript's text item delimiters to {""}
-----何行あるか?(データ件数)を数える
set numListLine to (count of theResultList) as number

-----データ件数3件の場合ローカライズ名が無いと判断
if numListLine is 3 then
set theLineData to (item 2 of theResultList) as text
set theResultText to my doReplace(theLineData, "\t", "") as text
set theResultText to my doReplace(theResultText, "\"", "") as text
set theResultText to my doReplace(theResultText, " ", "") as text

-----データ件数4件の場合ローカライズ名があると判断
else if numListLine is 4 then
set theLineData to (item 3 of theResultList) as text
set theResultText to my doReplace(theLineData, "\t", "") as text
set theResultText to my doReplace(theResultText, "\"", "") as text
set theResultText to my doReplace(theResultText, " ", "") as text

else

end if
---------- JavaScript escapes を変換するために大文字のUを小文字に その後で4桁コードをCharacterEntityに変換
set theResultText to my doReplace(theResultText, "\\U", "\\u") as text
set thePregReplace to "php -r 'echo preg_replace(\"/\\\\\\u([0-9abcdef]{4})/\", \"&#x$1;\", \"" & theResultText & "\");'" as text
set theResultText to (do shell script thePregReplace) as text
----------その後でシングルバイトの2桁コードをCharacterEntityに変換
set thePregReplace to "php -r 'echo preg_replace(\"/\\\\\\u([0-9abcdef]{2})/\", \"&#x$1;\", \"" & theResultText & "\");'" as text
set theResultText to (do shell script thePregReplace) as text
----------デコード本処理 CharacterEntity をテキストに変換する
set theMbConvertEncoding to "php -r 'echo mb_convert_encoding(\"" & theResultText & "\", \"UTF-8\", \" HTML-ENTITIES \");'" as text
set theResultText to (do shell script theMbConvertEncoding) as text

tell application "Finder"
try
-----取得したフォントファミリー名でフォルダーを作る
make new folder at (theFileDir) with properties ¬
{name:theResultText ¬
, owner privileges:read write ¬
, group privileges:read write ¬
, everyones privileges:read write ¬
, comment:theFontName ¬
, description:theFontName ¬
}
end try
end tell


tell application "Finder"
try
-----フォルダーの中にフォントファイルを入れる
move (theFile) to alias (theFileDir & theResultText & ":")
end try

end tell



---------文字の置き換えサブルーチン
to doReplace(theText, orgStr, newStr)
set oldDelim to AppleScript's text item delimiters
set AppleScript's text item delimiters to orgStr
set tmpList to every text item of theText
set AppleScript's text item delimiters to newStr
set tmpStr to tmpList as text
set AppleScript's text item delimiters to oldDelim
return tmpStr
end doReplace


「com_apple_ats_name_family.scpt.rtf」をダウンロード


「com_apple_ats_name_family.scpt.zip」をダウンロード


|

PackageMaker.app

PackageMaker.appは以下にあります

developer.apple.com


|

[addMenuItem]新規書類作成メニュー

過去記事の更新です


ファイルメニューに新規ブランクドキュメント作成メニューを追加します
用紙サイズは日本向け

Adobe Reader

Website_image00261228_15228

Adobe Acrobat XI Pro

Website_image00261228_15240


Adobe Acrobat 11 用
(下位バージョンでは動作確認していないだけですが)
インストール先は以下
アプリケーションドメイン
/Applications/Adobe Acrobat XI Pro/Adobe Acrobat Pro.app/Contents/Resources/JavaScripts
ローカルドメイン
/Library/Application Support/Adobe/Acrobat/11.0/JavaScripts
ユーザードメイン
/Users/ユーザー名/Library/Application Support/Adobe/Acrobat/11.0/JavaScripts

用紙サイズはpt(ポイント)
用紙サイズの計算方法は
=ROUND((ミリサイズ/25.4)*(72),0)


「newDoc.js.zip」をダウンロード


https://github.com/force4u/trustedNewDoc

|

[addToolButton]コンソールメニュー2種混合

過去の記事のアップデート

ヘルプメニュー

拡張メニュー(アドオンツール)に
コンソール(デバッガー)を開くコマンドを追加します


Adobe Reader

Website_image00261227_232234


Adobe Acrobat XI Pro

Website_image00261227_232611


Public Domain
href="http://creativecommons.org/publicdomain/zero/1.0/
openConsole.js 20141227
「openConsole.js.zip」をダウンロード


Adobe Reader11 Adobe Acrobat 11 用
(下位バージョンでは動作確認していないだけですが)
インストール先は以下
アプリケーションドメイン
/Applications/Adobe Acrobat XI Pro/Adobe Acrobat Pro.app/Contents/Resources/JavaScripts
/Applications/Adobe Reader.app/Contents/Resources/JavaScripts
ローカルドメイン
/Library/Application Support/Adobe/Acrobat/11.0/JavaScripts
ユーザードメイン
/Users/ユーザー名/Library/Application Support/Adobe/Acrobat/11.0/JavaScripts


|

[SourceHanSans]源ノ角ゴシック その2

源ノ角ゴシックLINKの続き

文字が多いわぁ

DTL OTMaster Light 2.0で見てみましょう
ダウンロードはこちらから

Website_image00261207_152351

http://www.fontmaster.nl/

保存出来ませんが見るだけなので
機能的には充分です

CIDやらGIDやら確認出来ますが


Website_image00261207_05752

Website_image00261207_10219

Website_image00261207_10945

クリック〜オープンして見ないと
文字が小さいわぁなぁ 初期の老眼には厳しいっっっっ


|

PANTONE Color of the Year 2015


Marsala Pantone Color of the Year 2015: Color Standards, RGB, HEX HTML codeMarsala


http://www.pantone.com/pages/index.aspx?pg=21165

|

UDG PC用バック 検討中(オランダ産)

U9490sgorudgcourierbagdeluxe17inchs

https://www.udggear.com/udg-ultimate-courierbag-deluxe-17-steel-grey-orange-inside

ちょっと大きいかなぁ…う〜ん

|

TransType 4


Fontlab Ltd.


|

« 2014年11月 | トップページ | 2015年1月 »