ただの備忘記録

忘れないように記録を残します。忘れるから記録に残してます。そして、その記録が役立つといいかな。

【Photoshop JSX Script】ページ番号のテキスト化と振り分け

2015年04月16日 | JavaScript

Photoshop CS5用に作成したスクリプトです。他のバージョンでは動作確認していません。

使い方はAdobeのページをご覧ください。

・ファイル名から数字を抜き出し、それをページ番号とします。
・ページ番号をテキストレイヤーで表示します。
・ページが奇数か偶数かによって表示位置を変更することができます。

ファイル名や用紙のサイズに合わせて初期値による設定が必要です。初期値を参照してください。
・ファイル名のどこからどこまでがページ番号として必要か、取得する位置を指定します。
・ページ番号の表示位置は用紙のサイズに合わせて変更が必要です。単位はmmです。

~~~~~~~~~~以下スクリプト~~~~~~~~~~

//ページ番号をファイル名から取得するスクリプト
var defUnit = preferences.rulerUnits;
//preferences.rulerUnits = Units.PIXELS; //単位設定(ピクセル)
preferences.rulerUnits = Units.MM; //単位設定(mm)
setPageNumber();
preferences.rulerUnits = defUnit;

function setPageNumber() {
    //ファイル名を取得
    var doc = activeDocument;
    var docName = doc.name;
    
    //初期値
    //ページ番号をファイル名から取得する位置
    //例:xx00.psdの場合(3文字目から4文字目→開始位置=3、終了位置=4)
    //例:x000x.psdの場合(2文字目から4文字目→開始位置=2、終了位置=4)
    var st = 2; //開始位置
    var ed = 5; //終了位置
    //表示位置(単位に従う)
    var posX = 130; //左からの位置
    var posY = 360; //上からの位置
    //var posX = doc.width / 2; //ページの中央
    //var posY = doc.height / 2; //ページの中央
    //ページの振り分けをする場合の表示位置(不要な場合は同じ数値にする)
    var posX0 = 225; //偶数ページ(右ページ)
    var posX1 = 10; //奇数ページ(左ページ)

    //ページ番号を取得
    var pageS = docName.substring(st-1,ed); //文字列
    var pageN = parseInt(pageS,10); //数値化
    
    //ページの振り分けをする場合の表示位置
    if (posX0 != posX1) {
        if ((pageN % 2) == 0) {
            posX = posX0; //偶数ページ
        } else {
            posX = posX1; //奇数ページ
        }
    }
    
    //レイヤーを取得
    var layerObj = doc.artLayers;
    
    //ページ番号のレイヤー作成
    var newLayer = layerObj.add(); // 新規レイヤーを追加
    newLayer.kind = LayerKind.TEXT; // レイヤー種別をテキストレイヤーに設定
    newLayer.textItem.contents = "- " + pageS + " -"; // テキストレイヤーに表示する文字列
    newLayer.textItem.position = Array(posX, posY); // レイヤー位置を指定(配列)
    newLayer.textItem.font = "MS-Gothic"; // フォント名
    newLayer.textItem.size = 14; // フォントサイズ
    newLayer.textItem.antiAliasMethod.NONE; //アンチエイリアス
    newLayer.textItem.justification.CENTER; //行揃え
}


月島にてブルームーン

2015年04月11日 | 日記

ボードゲームの愛好家たちが集うブルームーンの月例会に参加してきました。
とにかくみんなが持ち寄ったボードゲームで遊ぶのが目的です。

午前中は仕事場で勉強をして、お昼過ぎてからの出発でした。
場所は月島区民館なので、地下鉄の月島駅を出たら目の前にあります。

今回プレイしたのは、「ワードバスケット」「アクワイア」「6nimmt」です。

ワードバスケットは、カードを使ったしりとり遊びで、場に出た50音のカードに早い者勝ちで答えるのですが、最後の文字は自分の手持ちのカードに制限されています。カードは5枚から始まってなくなったら勝ちです。

アクワイアは、ホテルを建てるとその株券を購入できるようになり、ホテルを拡張しながら吸収合併をします。ホテルを大きくすると最後のボーナスが増えますが、合併で消えたホテルの株を持っていると合併時にボーナスが入るため、中盤は合併させて資金繰りを行います。株は毎ターン購入でき、買収時には売却、保留、交換(買収した側の株に2:1で交換できる)することで、戦略が生まれます。

6nimmtは、ニムトという名前でも商品化されているそうです。1から104までのカードを使って、プレイヤーには10枚カードを配ります。
一斉に1枚のカードを出して、小さいカードから場に並べます。そのとき、6枚目のカードを置いた人が前の5枚を取ります。この取ったカードをポイント計算に使い、ポイントが高いと負けになります。10回で終わりです。

会が終わってからは、みんなについて行ってもんじゃ焼きを食べてきました。
お店で食べるのは初めてでしたが、美味かったです。めんたい・もち・チーズ、イタリアン(芝エビ、チーズ、バジル)、コンビーフ・カレーを食べました。最後にデザートは小麦粉の記事に小豆(粉々?)を混ぜて焼いて食べるというクロンボ。たい焼きのような味になってました。

また次回も参加したいです。


データコピーのバッチ処理

2015年04月06日 | Windows

任意のフォルダにあるデータをコピーするバッチファイルを作成しました。
コピーしながら2つのファイルを比較し、更新されていないファイルのみをコピーします。

いくつかアプリを試した物の対応OSが古かったり、設定が面倒だったり、UTF-8のファイル名に対応しなかったりして、結局OSのコマンドを使うことにしました。

コマンドにはrobocopyを使い、コピー元フォルダとコピー先のフォルダをフルパスで指定し、ミラーリングのオプションを付けておきます。
以下、使用例です。remはコメント行のため実行されません。

rem データバックアップのバッチ処理
robocopy "C:\Users\user\Documents\FolderA" "Z:\FolderA" /mir
robocopy "C:\Users\user\Documents\FolderB" "Z:\FolderB" /mir
rem robocopy "C:\Users\user\Documents\FolderC" "Z:\FolderC" /mir
robocopy "C:\Users\user\Documents\FolderD" "Z:\FolderD" /mir

上記のコマンドをメモ帳に書いて、ファイル名は「rcopy_backup.bat」などとします。
これで、ファイルをダブルクリックするだけで、FolderAとFolderB、FolderDがコピーされます。
シンプルに動作するので動きは軽快です。



iOSのファミリー共有について

2015年04月04日 | MacOS/iOS

iOSのファミリー共有機能を使って、私のIDを親にして娘のIDをファミリーに登録しました。

何ができるかというと、それぞれにApp StoreやiTunes Storeで購入したアプリや音楽、本などお互いに共有できます。家族それぞれの購入履歴からダウンロードできるという具合。
また、ファミリーに登録された人がアプリを購入する際、親に決済を依頼して、許可が出たら購入できるという仕組みもあります。これにはいくつか問題があります。

まず、無料アプリであっても、ダウンロード時に許可が必要になるということ。そのため、親のIDとは無関係に自分でアプリを購入することができません。
未成年者の場合は上記の制約があるのですが、成年の場合、親の許可なく有料アプリも購入が可能になります。これはかなり問題で、許可の制約は未成年のみに提供されている機能になっています。

しかし、もっと謎な問題がありまして、娘から購入の許可の通知が届くのですが、その通知を開いても一向に次の画面が出てこないので、何もできない。白紙の画面でロード中のまま動かなくなるのです。
また、この通知の方法にも問題があります。iOSの通知設定には、ファミリー共有に関する設定がないため、自動的に通知がなされます。その点は良いのですが、通知画面以外に確認方法がないというのが大きな問題です。

iOSの通知画面は通知を見ると、次には通知が消えてしまうので、二度と確認ができません。
App Storeやファミリー共有の設定には、通知の履歴を見る機能がありませんので、通知も非常に分かりにくい仕様になっています。

まだまだ、かなりの改善点がある機能ではないでしょうか。