Illustratorで宛名印刷
差し込み自体はデータセット機能もあるしスクリプトもあるし、結構どうとでもなるんですが、レイアウトとか文字組とかが大変だったって話。
レイアウト
通常は名前をセンターに持ってきますが、連名があったら?名前が二行になったら?
データセットで頑張るなら行数に応じて表示状態を切り替えて、差し込む枠を切り替える感じでしょうか。。
住所はどうしましょうか。これも二行、下手したら三行も考えられます。
また「原則一行目より下に置きたいけど、入らなければ上にずらして頑張る」とか難しいです。後述する文字組みアキ量設定を使うか、あるいは。。
ただまあここはWordの差し込み印刷などでも調節しませんし、今回はあきらめることにしました。
番地
これはそもそもどう書くと見栄えいいのかよくわかっていないです。
漢数字より算用数字の方が読みやすいじゃないですかーということにして「縦組み中の欧文回転」を使ったので、そこの変換は書かずに済みました。
番地の区切りは横書きならハイフンないし全角マイナスを使えばいいんですが、
- ハイフン:全角数字と並べると短い。欧文回転オンだと横棒になってしまう。
- マイナス:文章方向とは関係ない記号なので、縦書きだろうと常に横棒。
でちょっと長い気はするんですが、ダッシュと縦罫で悩んで縦罫にしました。見た感じカーニングと太さがちょっと違うようです。
名前
長さがばらばらなんですよ。4〜5文字が多い気はしますが、3文字や6文字の人もいます。
これも言葉で書くなら「名字と名前は分けたい、短ければ間隔を広くしたり文字を大きくしたり、長ければ上から下まで詰める」みたいな。
今回は以下のように作りました。
- エリア内文字、均等割り付けにしておく
- 短い名前はデータセット変換時に姓名間のスペースを増やす
- 文字組みアキ量設定で「段落先頭 -> 非約物」の最大値を増やす(字間より優先して広げてくれるので、長い時だけここを詰めてくれる)
ここまで来るともう宛名印刷専門の文字組やレイアウト処理を実装するしかないじゃないですかーってなりますね。年賀状ソフトは偉大だ。
おまけ:差し込み
変換はこんな感じに。
Func<string,string> convName = _ => _.Replace(" ", _.Length < 5 ? " " : " "); Func<string,string> convAddr = _ => _.Replace('-', '|'); var data = @""; data.Split('\n') .Select(_ => _.Split('\t')) .Select(_ => new Dictionary<string, string>{ {"name1", convName(_[0])}, {"name2", convName(_[1])}, {"post1", _[2].Substring(0, 3)}, {"post2", _[2].Substring(3)}, {"address1", convAddr(_[3])}, {"address2", convAddr(_[4])} }) .Select(_ => string.Format( "<v:sampleDataSet dataSetName=\"{0}\">{1}</v:sampleDataSet>", _["name1"], string.Join("", _.Select(__ => string.Format("<{0}><p>{1}</p></{0}>", __.Key, __.Value))) ) ).Dump();
印刷の方法については、おそらくバッチ機能を使うのが一番簡単です。
印刷をするだけのアクションを記録しておいて、アクションパネルのメニューから「バッチ」、ソースをデータセットにすればいけます。同じようにしてPDFや画像として書き出せないかと思いましたが、どうもできない仕様のようです。
http://helpx.adobe.com/jp/illustrator/using/automation-actions.html#WS714a382cdf7d304e7e07d0100196cbc5f-62a7a
直接印刷はなんとなく心配だったので、VisualStudioでイラレのタイプライブラリを読み込み、こんなプログラムでPDFを一括出力しました。
static void Main() { var app = new Application(); var doc = app.ActiveDocument; var opts = new PDFSaveOptions(); opts.PreserveEditability = false; foreach (DataSet ds in doc.DataSets) { ds.Display(); doc.SaveAs(string.Format(@"R:\nenga\{0}.pdf", ds.Name), opts); } }
近頃のDTV関連ツール
なんか作りたいなーと思って、知らなかったものを中心にメモ。
- TvRock
- 公式閉鎖。
- タイニー番組ナビゲータ
- Java。一般のWeb番組表を参照して、レグザ、DIGA、EDCB、TvRockなどに録画予約。
- EDCB
- GUIだけWPF、残りはC++。BonDriverを使ったEPG取得〜予約録画までカバー。DLNA鯖にも・・・?
- Foltia
- PHP。OSSの方は更新が止まっているが商用版あり、こっちはがしがしメンテされてる。しょぼカルベース。
- Chinachu
- Node。色々いまどきな感じですね。Foltiaとの比較してる記事を見つけた(http://unsui.hatenablog.com/entry/2014/08/29/123556)。
- epgrec
- PHP。epgrecUNAというフォークがあり、epgdumpやrec**と併せてメンテされてる。
- TVTest
- C++。最近も更新されてるみたい。サイトにあった論文も面白そうです。
- Spinel
- Linux版誰か作りそうなのにと思ったら、解析結果の公開はダメって明記されてた。
- HandBrake
- エンコーダ。IntelQSV・OpenCLに対応。x265も吐ける。
- L-SMASH
- Cで書かれた、MP4コンテナを扱うライブラリ
タイナビの対応機種を見ながら、ソニーのBDレコーダー(たぶんnasneも)はテレビ王国経由で予約できるみたいだから云々とか考えた。
Atlassian Summit 2014を見た
Web上で。
https://summit.atlassian.com/archives/2014/keynotes
日本語のレポートがあまりにないので*1、個人的に興味を持ったものだけでも書いときます。
Bitbucket
https://summit.atlassian.com/archives/2014/keynotes/developer-tools-keynote
レビュー依頼→メールやHipchatで通知
http://youtu.be/tOEjOvItDwE?t=18m37s
Hipchat通知は新しいHipchat Integrationで通知を有効にしてると使える?ユーザーのマッチングはメールアドレス?
この辺はそのうち試してみる。
プルリクタスク
http://youtu.be/tOEjOvItDwE?t=19m27s
プルリクエストについたコメントに対して、タスクというかチェックリストを作れるように。
個人的にはGithubみたいにプルリクの説明文にチェックボックスほしい。
Branch Permission・マージ条件の設定
http://youtu.be/tOEjOvItDwE?t=20m17s
見た感じBBにはこれまで同様pushユーザーの制限等しかないので、Stash限定?
JIRA
https://summit.atlassian.com/archives/2014/keynotes/jira-keynote
バージョンにProgress画面追加
http://youtu.be/HauJFidMxuQ?t=18m11s
そのバージョンで修正されるチケットを、ステータスごとにまとめた画面。
日本語だと「リリース」って名前になってますね。
レビュー通ってないコミットとか、完了してないチケットとかあると警告も。
JIRAファミリーにJIRA Portfolio追加
http://youtu.be/HauJFidMxuQ?t=25m57s
誰がどれだけ稼働できるかと予想工数等を入れると、自動でスケジュールを立ててくれる。
PV http://www.youtube.com/watch?v=MwAXiL74l1A
Webinar http://www.youtube.com/watch?v=849rNIXYx74
AtlassianはJIRAで何でもやってますレポート
http://youtu.be/HauJFidMxuQ?t=41m12s
財務、営業、採用・・・結構汎用してますね。
それを踏まえたプロトタイプの紹介
http://youtu.be/HauJFidMxuQ?t=45m5s
開発・デスク・汎用・HR(採用)・リスク管理といった各分野にプロジェクトタイプ
それぞれ画面構成が違う(今は画面構成やメニューは変えられない)
全てをJIRA上で扱えるように
Hipchat
https://summit.atlassian.com/archives/2014/keynotes/confluence-and-hipchat-keynote
今年の更新:ビデオチャット、HipChat Server、価格体系の変更
http://youtu.be/mz0MY3V58J8?t=9m12s
無料プランの人数制限がなくなったのはへーしゃには朗報でした。
過去ログに制限があるけども、まあそんなに後まで残したいなら別の形でまとめるほうがいいかなー。
最近の更新:外部サービスとの連携
http://youtu.be/mz0MY3V58J8?t=11m49s
BitbucketやConfluenceとの連携が刷新されたようで、とりあえずBitbucket連携は試してみた。
http://qiita.com/unarist/items/52234767a43736de31f1
自作アドインはOAuthで簡単に実装できそうなのでそのうち云々。
Mac版クライアントのデザイン変更
http://youtu.be/mz0MY3V58J8?t=13m33s
http://japan.blogs.atlassian.com/2014/09/get-know-new-hipchat/
まあWindowsユーザーなので・・・。
Hipchat loves iOS8
http://youtu.be/mz0MY3V58J8?t=16m25s
起動の高速化、共有エクステンション、通知センターウィジェット、通知にその場で返信。
後ろ二つはiPadだとわからない・・・。
tre!due!uno!.....bang!!!
Confluence
http://youtu.be/mz0MY3V58J8?t=22m33s
- インラインコメント
- 画像挿入の改良(自動リサイズ、ビューワー強化、任意の点へのコメント)
- ロードマップ図の作成・挿入
- リアルタイム共同編集→来年?
その他
- Becoming a Git Master(Tips集)
- https://summit.atlassian.com/archives/2014/software-teams/becoming-a-git-master
- Do Agile Right
- https://summit.atlassian.com/archives/2014/collaboration-teams/do-agile-right-lessons-learned-from-an-atlassian-product-manager
他にも面白そうなセッションがあるけれど、まだ読めてない。というかDo Agile Rightが結構ボリュームあって途中でやめた。。
sysprepとかHCKとか調べた
いやまあ最初はskiprearmとか調べてたんですけどね。。
- Windows 7 の再初期化数について | SE の雑記
- http://engineermemo.wordpress.com/2010/12/31/windows-7-%E3%81%AE%E5%86%8D%E5%88%9D%E6%9C%9F%E5%8C%96%E6%95%B0%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/
- Windows TIPS:sysprepで環境複製用のマスタ・イメージを作成する(Windows 7/8編) - @IT
- http://www.atmarkit.co.jp/ait/articles/1307/12/news062.html
- OEM Windows の展開およびイメージングのチュートリアル
- http://technet.microsoft.com/ja-jp/library/dn621895.aspx
- Windows Hardware Certification Kit User's Guide
- http://msdn.microsoft.com/library/windows/hardware/jj124227.aspx
一通りチュートリアル読んで、流れはつかめたかなというところ。VMで遊んでみようかな。
ことあるごとにWindowsを再インストールしていた時期があって、SP+メーカーを愛用していたのが懐かしいですね。そうでなくとも集中管理とかカスタムイメージ作って展開とかにはどこか憧れがあって、そういうお手伝いとかしたいものですが、今のところそんな予定もなく。
そんなことより、このページにOEMライセンス認証ガイド?へのリンクがあるんですが、
http://technet.microsoft.com/ja-jp/library/dn621894.aspx
OEMパートナー向けのログイン方法の中に、社員・パートナー向けのMSドメインアカウントというのがありまして。
黒基調だしスマートカード対応だしで、関係者以外立ち入り禁止みたいなカッコよさを感じました。
HATEOSおもしろそう
単純なRESTfulだと、どこに何があって、何をするにはどこを見るべきかをクライアントが知っている必要がある。
だけどネットサーフィンなら、何があるか何ができるかは行けばわかるよね。というのをAPIで再現した感じ。
この項目は書きかけの項目です。加筆、訂正などをする時間を求めています。
link
リソース間の関係をサーバー側から示す。ある状態でのみ有効な遷移なんかも表せる。
<link href="http://..." method="get/post/..." rel="元リソースとの関係" type="hrefが示すリソースのMediaType" />
今何ができるかを示すという点ではOPTIONSメソッドも重要。編集不可フラグが立ったらGET以外禁止するとか。
MediaType
そのリソースが何を表すのかを示せるように。application/vnd.xxxが自由に使える。
使いどころはリクエストのAccept、レスポンスのContent-Type、linkのtype、など。
<link href="http://..." rel="Father" type="application/vnd.hogehoge.user" /> <link href="http://..." rel="Mother" type="application/vnd.hogehoge.user" /> <link href="http://..." rel="Family" type="application/vnd.hogehoge.family" />
Tips
LESSでサイト全体のCSS書いてる今の私
仕事でサイト全体のCSS組むことが二回ほどあったので、今の私の状況をメモっておく。っていうかこの記事に触発されて。
不特定多数の人が更新する大規模サイトに必要な CSS 設計の思想
これもQiitaに書いたほうが注目されるのでは・・・って一瞬考えたものの、よくわからない文章になってきたからもうこっちでいいや。
LESS
疑似セレクタとか書くのがすごく楽になりました。たぶん可読性も上がってる。
全体で使うmixinは定型デザインとか画像置換とかで少しだけ。ただ「CSSで○○するときの定型句」みたいなのをmixinにしてしまうと、使う側で上書きしようとした時にどの方法の定型句だっけ・・・となるので実は面倒だったり。カスタム部分だけ書けばいいってこと自体は悪くないのだけど。
それよりも、あるclassの中で定義してすぐ使うみたいなのが便利です。グローバルスコープ汚さないし、すぐそこに実装あるから読むのも簡単だし。変数でもこれができるので、複数のプロパティに同じ値を設定したい時とか便利です。
色違いを作るときなど、class定義するmixinも便利です。ループと配列関数と組み合わせたらなかなか楽しいことになりましたが、あまりやると他の人から苦情が来そうです。再帰とガードでforを書くってのがそもそも難解かもしれない。
LESSの話はおしまい。
せまんてぃくす
HTML5の豊富なタグは楽しそうですが、未だによくわかっていません。世の中そんなにわかりやすい構造のサイトばかりでもないし。
それよりulを使いすぎかなと思う今日この頃。
idかclassかタグか
classにはそれをどう表示するかというより、それが何であるかを書きたい人です。そういうわけでBootstrapはあまり好きじゃない。
そういえばパフォーマンス気にする割にdata属性大好きです。
以下戦歴。
1戦目
ページ内に複数現れないものはほぼ全てid振る。スタイルはcssで決めるものだという意識が強かったので、class組み合わせたりとかほとんど考えなかった。
欠点:idが長い。
ページ別CSS
共通classと個別classがあると混乱するからって、なんたら-かんたらの-ほげほげみたいな長い名前付けてましたが、ちょっとつらい。主にHTML側がつらい。
共通と個別をわけるならむしろprefix付けるのがいいかなーって考えてます。g-hogehogeとか。
ベンダープレフィックス
なまじ、提供者が泥臭いハックで対応してしまうがために、利用者と、利用者を食い物にしている不自由コンピューターの売人がつけあがるのだ。つけあがらせてはならぬ。断じて妥協の姿勢を見せてはならない。
http://cpplover.blogspot.jp/2014/04/3_30.html
とは言えないので。ただターゲット環境を絞れればだいぶプレフィックスなしでいけます。いい時代ですね。
あとはAutoprefixerでも使うといいと思います。mixinで対応していたBootstrapも、v3.2.0からはこっちを推奨するようになってました。
pxかemかremか
今のところemを使うことが多いです。ただmarginとかをemで指定していると、font-size変えたことでその周りのmarginが他とずれてぐぬぬ、というケースがあったのでremに手を出そうか考え中。