ラベル Script の投稿を表示しています。 すべての投稿を表示
ラベル Script の投稿を表示しています。 すべての投稿を表示

2008年4月29日火曜日

Tumblrまとめ(4/11-30)

Mac OS Xのメンテナンス

無料で使えるオープンソースのベクターアート集
http://www.vectorart.org/

メイリオがMacOSXでも使える
有名な海津さんのblog

<BR>と<P>

TimeCapsule

Mac系テクニカルライターのスクリーンダンプ(キャプチャ)術
システム環境設定のアピアランスダイアログ内の「滑らかな文字のスタイル」は「標準-CRTに最適」に。

フォント・マネージメントツール

アウトライン化してもPDF内の文字が文字として保持されているという話
たとえば「xdoc2txt( http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html )」を使って、そのPDFファイル(全文字をアウトライン化してあるもの)をtxt化してみると、まるっとごっそり隅から隅までお見通しなカンジで、文字列を抽出できてしまいました。


ヘアライン修正
RIP側で修正するものだと思ってます。

JPEGに出力するソフト
お客さんからPDFよりJPEGで!って要望が多いですから。

カラマネの基礎知識 (No.92) 

ブラウザからMacをリモートする
まだ実用化は先だが、いずれ在宅で出力業務ができるようになるかも。

突然メールが送信できなくなった
このシリーズは面白い^^
サブミッションポート詳細
こんどは先方からのメールが届かない!!
なんというオチ。。(DNS逆引き設定騒動)
関連1
関連2

AppleScriptのソースコードをScriptEditorで開く

OOoBasicについてのWebサイト情報

Acrobat 8 バッチシーケンスの制限・配置

XHTMLとCSS
p は paragraph(段落)。ul は unordered list(番号の付かない箇条書き),li は list item(箇条書きの項目)。ol は ordered list(番号付き箇条書き)。dl は definition list(定義リスト),dt は definition term(定義する用語),dd は definition description(定義の記述)。hr は horizontal rule(水平の罫線)。em は強調(emphasis), br は line break(改行)。
解説がていねいです。

【Soft】Avast!4.8インストールによるPCフリーズの対策方法
とりあえずアンインストールしてから調子はいい。

Illustrator CS2・CS3で「入力変換ウィンドウ」を実現するフリーのプラグイン

三島梅花藻さんのjs
三島梅花藻さんの「そのままアンカー付きオブジェクト化.jsx」をInDesign CS3で使うで紹介されてました。

表組は XMLを利用するほうが圧倒的に便利
XMLのタグにスタイル割り当てられるし。
体裁を先に決められる場合はおすすめです。
エクセルのXML化は、がんばればエクセルとエディタでなんとか。
FileMakerから吐き出して、XSLTという手も。
あとは、市販のタグ付けソフトを使うか。

PDF印刷時の体裁の崩れ

XHTMLでやりがちな8個の間違い

とりあえずこんなとこで^^

2008年4月10日木曜日

寺で紹介されたリンク先

「ttp」を検索ワードにしてみた。←こいつが今日の発見^^

CS2、CS3のオーバープリ解除
複数ページの文書を印刷すると遅い(Macintosh 版 Illustrator CS3/InDesign CS3)
[一般情報] セクションの [Rosetta を使って開く] にチェックを入れます。
Illustratorで虹
EPS 画像を InDesign に配置して印刷すると 72 dpi 程度で出力される(InDesign CS2)
Illustratorでスタンプ風のかすれ表現
かすれた感じにするチョーク系ブラシ
InDesignファイルの結合
画像管理・検索ソフトExpression Media
イラレCS2にて画像配置後、フォルダー選択
かなカナ全角半角変換javascript
PDF 作成時に日本語フォントを埋め込む方法(Windows 版 Acrobat 7.0/8)
Illustratorのテキスト原点、変形リセット
ID=-11000 が発生する。または画像のプレビューが表示されない。
縦組み、ジャスティファイ設定時のコーテーションマークによって行末が不正確になる【177】
1桁の数字は全角、2桁以上の数字は半角で書式を統一する
Mac OS 9 環境で作成した PS ファイルを Distiller 8.1 で変換できない
Base&Box4.0、Rubi Manager2.0ダウンロードサービス-約物ツメ機能あり
パレットやアートボードが表示されない、またはツールの一部が欠けて表示される(Illustrator 9 / 10)
イラレの鬼にも種類がある
Mac OS Xセーフブート
保存を繰り返しながらテキストを編集すると行間が突然詰まる(Illustrator CS2/CS3)
MacOS Xで消せない、ゴミ箱の中のフォルダはどうやったら消せますか?
ファイルやディレクトリのパーミッション(アクセス権限)の変更
photoshopの文字ツールで、日本語のフォントのみ表示されなくなってしまいました
Mac OS 9: CD の作成方法とフォーマットの選択
アップルソフトウェア製品で使われる「一般的な」TCP および UDP ポート
写真の実質解像度確認スクリプト
Acrobat面付けソフト
Exifの回転情報を削除
回転をかけて保存したEPS画像より
ImageReady/Photoshop/Photoshop Elements (Win):Windows セーフモード でのインストール
CS3 で印刷時にジャギーが出る
Adobeに問い合わせた時点では「CS3とプリンタの相性の問題のようです」と回答
インデザイン上に張り込まれている画像のサイズが100%で指定dpiになるように
ぶたさんのスクリプトより
MS Officeソフトの掲示板
テキストを配置、ペーストしたときに正しく変換されない外字を変換するPlug-in
アウトライン後に一括で綺麗な角アールをとる


とりあえず今日はこの辺で^^

2008年4月9日水曜日

Tumblrまとめ3

Illustratorでのアンカーポイント数の最大値
鏡面反射する文字の作り方
DTPヨタばなし
DTP関係の掲示板で何度かみかけるpi&puさんのblog
ブロッキング防止パウダー
モニタが何かの拍子に上下逆になっちゃった
Windows XPをセットアップするときに気をつけていること
1、コンピュータの名前の付け方
2、管理者パスワードの設定
3、ユーザー名の付け方
Vector Magic
bitmap画像を簡単なクリックだけでベクターデータに変換してくれる
HTMLからPDFに変換するWebサービスAPI
ハイフンの誤用
イラレでスライスがズレないようにする
まず表示を「ピクセルプレビュー」にします。そして、表示メニューから「ピクセルにスナップ」をチェックです。これで問題は解決。
出力の手引きWeb
Mac OS Xのズーム機能
controlキー+ホイール操作でユニバーサルアクセスのズーム機能が使える
Macからのfax送信方法
現行機種ではオプション
WindowsからMacにVNCで接続
どうやってマークアップしますか?
写真に溶け込む文字を作る
Excel セル内改行を除去する
「ほかの人またはプログラムによって使用されています。」などとエラー
HTMLとCSSからPDFを生成するPrince XML
AcrobnatのOLE機能(IAC)、又はPDFについて調査。
モアレ修正
写真を一瞬でセピア色にする方法
「色彩の統一」 にチェックをし、「色相:30 彩度:30 明度:5」にしてOKをクリック。
法人向けのレンタルサーバーの条件
色変換の仕組
人力検索だけを検索するカスタム検索
InDesign互換ファイルの効用
漢和辞典で文字コードを調べる
HTML解説サイト
【WindowsXP】社内LANなどで他のマシン時にアクセスする場合パスワードを求められ困る場合
Guestのパスワード設定を変えればいい

マイコンピュータ>右クリック>管理
コンピュータの管理のウィンドウが立ち上げる

ローカルユーザーとグループ>ユーザー で
Guestのパスワードを設定しなおす

特にパスワードなしでアクセスしたい場合は
パスワードの部分は「空(から)」でOK

Classic環境でQuarkXPress4.1を利用していた場合、起動できなくなる場合
背幅の計算式
(本文ページ数 ÷ 2) ×紙の厚さ=背幅(ミリ)
写真の大敵「バンディング」を消すには
画像は8ビットで作業し、調整レイヤーおよびマスクが乗った状態ですね。これを画像統合しないまま16ビットモードに変換した後、画像を統合してみてください。するとバンディングが消えるのです。
ブラウザに表示される色について
PDFをFlashに変換してパブリッシュするWebサービス
フォトショップが立ち上がらなくなったときの対処法
1. Photoshop CS/CS2 を起動した直後に Ctrl + Alt + Shift キーを同時に押し続けます。
2. 「Adobe Photoshop 設定ファイルを削除しますか?」と表示されたら [はい] をクリックします。
ショッピングカート

2008年3月13日木曜日

AppleScriptを使って、Illustratorに貼られた画像の拡大縮小率を得るには

http://www.dtp-transit.jp/adobe/illustrator/post_514.htmlより引用
AppleScriptを使って、Illustratorに貼られた画像の拡大縮小率を得るにはどうしたらいいのか?
まずサイズの情報がどこにあるのか考える。サイズの情報は配置画像のpropertiesの中にありそうだ...が、配置画像のpropertiesにはhorizontal scaleといったようなそれらしい値がない。

唯一、サイズに関連しそうなのはMatrixという値。

--配置された画像のmatrixを得る
tell application "Adobe Illustrator"
get matrix of placed item 1 of layer 1 of document 1
end tell
ところがこれがくせ者で、例えば縦80%、横50%、回転-10度の縮小画像のMatrixを得ると、次のような値が返ってくる。

{class:matrix, mvalue_a:0.787846207619, mvalue_b:0.138918548822, mvalue_c:-0.086824089289, mvalue_d:0.492403864861, mvalue_tx:458.30810546875, mvalue_ty:376.57421875}
...なんじゃこりゃ。

Adobeのスクリプトマニュアルには 「変換マトリックスは、線形代数という分野から生まれた、数学的な概念です」とあるので、なにか計算すればここから倍率や回転度数を得られるのだろうけど、...難しい。

こりゃ私には無理だわと、お手上げ状態で頭をかかえてしまったのですが、親切な方から「これはアフィン変換ではないか」との助言とそこから倍率を得る公式を教えていただいた。

mvalue_aが「横方向倍率 × cosθ」
mvalue_bが「横方向倍率 × sinθ」

(cosθ)^2 + (sinθ)^2 = 1
これをExcelの関数で計算すると

横方向倍率=SQRT((mvalue_a)^2+(mvalue_b)^2)
AppleScriptではExcelも制御できるので、この計算もExcelでやらせてもよいのだけれど、Mac OS XならPerlやRuby、JavaScriptを使った方が簡単。

例えばRubyでこの計算を行うと

horizontal_scale = Math.sqrt((mv_a.to_f**2) + (mv_b.to_f**2))##横方向倍率
verticality_scale = Math.sqrt((mv_c.to_f**2) + (mv_d.to_f**2))##縦方向倍率
という感じになる。

これをAppleScriptと組み合わせると

--選択している配置画像の縮小率をとる
tell application "Adobe Illustrator"
set Placed_Item to item 1 of selection

set mv_a to mvalue_a of matrix of Placed_Item
set mv_b to mvalue_b of matrix of Placed_Item
set mv_c to mvalue_c of matrix of Placed_Item
set mv_d to mvalue_d of matrix of Placed_Item

do shell script "ruby -e ' print Math.sqrt((ARGV[0].to_f**2) + (ARGV[1].to_f**2))' " & (mv_a & " " & mv_b)
do shell script "ruby -e ' print Math.sqrt((ARGV[0].to_f**2) + (ARGV[1].to_f**2))' " & (mv_c & " " & mv_d)
end tell
こんな感じ。

派遣先のIE5やネナビ6で読めないから、このblogにメモ。

2008年2月10日日曜日

はてブ的日記

はてブ的日記は書きたくなかったのだが、メモる情報がありすぎたので。。。

http://www.dtp-transit.jp/seminar/post_345.html
Page2008に出て一番収穫のあったセミナー。Tumblrは使用する価値あり。
「Tumblr」の使い方

http://blogs.yahoo.co.jp/mahobal/MYBLOG/yblog.html
同レベルの初心者につきメモ。

http://ekouza.blog121.fc2.com/blog-category-4.html
読みづらいサイトではあるがPhotoshopの勉強に

http://blog.livedoor.jp/another_insight/archives/50449490.html
Word 2007で作成した書類をAcrobat 6.0でPDFファイルに変換しようとしたらできませんでした。
調べたら、Acrobat 6.0ではできないようです。
代わりにWord 2007を購入した人はMicrosoftのHPから無料で変換ソフトをダウンロードできる仕組みになってました。

インテルマック上でOS9を動かす

QuarkXpressデータをInDesignに変換する際の問題点とその現実的対策について
PDFをダウンロードして読む

XOOPSって知ってますか?

印刷の基礎知識

Adobe Acrobatの修復
アドバイスに従い、plug-insのファイルをすべて消すとAcrobatの起動が可能になった。さらにインストールCDをセットして”検知して修復”した。

2008年2月3日日曜日

メモ

紙の基礎知識
意外と知らないのがコイツなんだなぁ~

文字サイズ変更ボタンを設置する
ブラウザーで文字サイズを変更するよりも手軽^^ こういったUIが大きな差を生むと思うのです。

Jpeg圧縮実験
Photoshopの「web用に保存」が一番だということで。

本を出版することが大変な10の理由
1.出版される本の数は爆発的に増えている
2.本の市場はは2005年から2006年0.3%減少、他の年もフラット。
3.本の販売数は平均500。それも落ちてきている。
4.本屋での本の販売は2004年がピーク。
5.ビジネス本が平均的な本屋におかれるチャンスは1%
6.同じマーケティングコストや努力でも効果は低下
7.今日の本のほとんどは著者や出版社のコミュニティへ売れる。
8.今日の本のマーケティングは出版社ではなく、著者によって行われる
9.本ほど新商品の多い業界はない。
10.出版業界の嵐は終わることがない。


PDF作成フリーソフト BullZip PDF Printer 
使い方はhttp://ameblo.jp/mahina/entry-10066485215.html

手軽に正規表現のテストができるツールが登場!Rubyで作られた『Rubular』
Rubyには手を出してないけど、そのうち必要になるかも知れないので。

MacOSX-DTP
吉田印刷以外にもこういうサイトがあったのか。

mixi Macを教える・教わるコミュニティ トピック一覧
これってイイ^^

2008年1月26日土曜日

プログラミング言語の特徴

http://ameblo.jp/dekisokonaisepg/theme-10005686431.htmlより
FORTRAN:1956年にIBM社によって開発された、科学技術計算向けのプログラミング言語。
数式をほぼそのまま記述できるのが特徴。
世界初の高級プログラミング言語でもある。

COBOL:CODASYL委員会によって制定された、事務処理計算用言語。英文に近い記述が可能で、汎用性が高い。
企業の会計処理に使われる大型計算機のプログラムに使われている。
※CODASYL→米政府の情報システムに使用する標準言語を策定した委員会の名称。
国防総省とメーカ、ユーザの代表で構成された。
この委員会によって策定されたのが事務処理用言語COBOLである。

Pascal:プログラミング言語の一つ。
1968年にスイス連邦工科大学のNiklaus Wirth教授によって開発された教育用言語。
C言語と同じALGOLの流れをくんだ言語で、構造化プログラミングに適している。
コンパイラが初めて実装されたのは1970年で、Cray Research社が開発した当時最高速のコンピュータであるCDC 6600が使われた。
Borland社のWindowsアプリケーションソフト開発環境であるDelphiでは、Pascalにオブジェクト指向的な拡張を施したObject Pascalが使われる。
※Delphi→Borland Software社から発売されているソフトウェア開発環境。
プログラミング言語には、教育用として使われることの多いPascalに、オブジェクト指向的な拡張を施したObject Pascalという言語が用いられる。
データベースアプリケーションソフトの構築に使われることが多いと言われている。

C言語:1972年にアメリカAT&T社のベル研究所でD. M. Ritchie氏とB. W. Kernighan氏によって開発されたプログラミング言語。
1986年にアメリカ規格協会(ANSI)によって標準化され、国際標準化機構(ISO)や日本工業規格(JIS)にも標準として採用されている。
B言語という言語の後継として開発されたためCと名づけられた。
表記法などはB言語やPascalの祖先であるALGOLに近い。
Cの拡張版であるC++言語とともに、現在もっとも普及しているプログラミング言語である。
豊富な演算子やデータ型、制御構造を持ち、構造化プログラミングに適している。
また、特定のプラットフォームに依存した部分を言語から切り離しているため、移植性の高いプログラムを記述することができる。
もともとシステムの記述用に開発されたので、ハードウェア寄りの低水準な処理を記述することもできる。
実際、UNIXはC言語で記述されている。
C言語にオブジェクト指向プログラミング的な仕様を追加したものをC++言語という。

BASIC:プログラミング言語の一つ。
ダートマス大学のJohn G. Kemeny氏、Thomas E. Kurtz氏によって開発された、初心者向けの対話型言語。
多くのBASIC処理系はインタプリタ型のため、実行速度が遅い。
Microsoft社のVisual Basicなどのように、コンパイラを使うことにより実行速度を向上させた派生言語も存在する。
インタープリタ→人間がプログラミング言語で記述したソフトウェアの設計図(ソースコード)を、コンピュータが実行できる形式(オブジェクトコード)に変換しながら、そのプログラムを実行するソフトウェア。
インタプリタ型の言語はプログラムの実行時に変換を行なうため、その分だけコンパイラ型言語よりも遅い。
※コンパイラ→人間がプログラミング言語で記述したソフトウェアの設計図(ソースコード)を、コンピュータが実行できる形式(オブジェクトコード)に変換するソフトウェア。
コンパイラ型言語ではソースコードは開発時にまとめて変換され、実行時にはオブジェクトコードを直接実行するため、インタプリタ型言語に比べて実行速度が速い。
※Visual Basic→Microsoft社によって開発されたプログラミング言語。
アプリケーションソフトが容易に開発できるよう工夫された独特の開発環境と共に提供されたため、これも含めた呼称として用いる場合が多い。
「フォーム」と呼ばれるウィンドウにアプリケーションソフトの構成要素となる部品(ActiveXコントロール)を張り付け、部品の設定や部品間の関係を指定することでアプリケーションソフトを開発することができる。現在でいうRADツールの先駈けとなった商品。
その簡易版には、同社のOfficeアプリケーションソフト内でマクロ言語として用いられるVBAや、WWWブラウザInternet Explorer上でスクリプト言語として用いられるVBScriptなどがある。

LISP:プログラミング言語の一つ。
人工知能研究などで利用されることが多い。
1962年にマサチューセッツ工科大学のJohn McCarthy教授を中心とする研究グループによって開発された。
代表的な関数型言語の一つで、既に定義されている関数を組み合わせて新しい関数を定義するという形でプログラムを記述する。
1984年にはCommon Lispという標準仕様が定義されている。

C++:広く普及しているプログラミング言語であるC言語に、オブジェクト指向的な拡張を施したプログラミング言語。
1992年にAT&T社によって仕様が策定された。
C++の言語仕様はCの上位互換になっており、C++の処理系を用いて従来のCで記述されたソフトウェアの開発を行なうことも可能である。
オブジェクト指向プログラミングにより、プログラムの再利用が可能となり、大規模・複雑なソフトウェアの開発が容易になった。

Smalltalk:1970年代後半にXerox社のパロアルト研究所(PARC)でAlan Kay氏らによって開発されたプログラミング言語。
Xerox社から独立したParcPlace System社によって、1980年にSmalltalk-80として商品化され、
その後も機能の拡張と改良が加えられている。
対話型のインタプリタ言語で、世界で初めてオブジェクト指向を採用した言語として知られている。
Smalltalkの処理系は他の言語のものとは異なり、単なるプログラミング言語の処理系ではなく、プログラミングを支援する開発環境全体を表している。
プログラミング言語の枠に留まらず、ユーザインターフェースなどOSの機能に近いものまでクラスとして提供していたため、「Smalltalkプログラミング環境」という呼ばれ方をすることもある。

Java:JavaはC言語に似た表記法を採用しているが、C言語など、既存の言語の欠点を踏まえて一から設計された言語であり、今までの言語にない完全なオブジェクト指向性を備えている。
また、強力なセキュリティ機構や豊富なネットワーク関連の機能が、標準で搭載されており、ネットワーク環境で利用されることを強く意識した仕様になっている。
Javaで開発されたソフトウェアは特定のOSやマイクロプロセッサに依存することなく、基本的にはどのようなプラットフォームでも動作する。
Javaの汎用性の高さはJava最大の特長であり、「Write Once, Run Anywhere(一度コードを書けばどんな環境でも動作する)」というキャッチコピーで、その利便性が強く主張されている。
Javaで記述されたソースコードは、コンパイル時にJavaバイトコードと呼ばれる中間コードにいったん変換される。
ソフトウェアはJavaバイトコードの状態で配布され、実行時にはJava仮想マシンと呼ばれるソフトウェアによって、実行するプラットフォームに対応した形式(ネイティブコード)に変換され、実行される。
プラットフォーム間の違いはJava仮想マシンが吸収してしまうため、仮想マシン上で動作するJavaプログラムは、プラットフォームの違いを意識しなくてもよくなる。
一方、Javaの欠点として、プログラムをJavaバイトコードからネイティブコードに変換する際にある程度時間がかかるため、通常のプログラミング言語で開発されたソフトウェアよりも動作は遅くなってしまう。
また、どのプラットフォームでも動作させるために、どのプラットフォームでも実現できる、いわば最大公約数的な機能しか使用できないため、プラットフォーム固有の強力な機能を利用することはできない。
このような欠点を補うため、特定のプラットフォームでしか動作しないがその分高速で、プラットフォーム固有の強力な機能を利用できるJava開発環境を提供しているメーカーもある。
ちなみに、1999年には機能を大幅に拡充したJava 2が発表され、現在はJava 2をベースにした改良が行われている。

Java2→Sun Microsystems社のプログラミング言語「Java」の第2版。
Java 2はJDK 1.2と呼ばれていたものの正式名称で、SunによるJava 2プラットフォーム対応のプログラミング環境や実行環境も含む。
従来のJava環境に比べ、HotSpotと呼ばれる高速化技術を搭載した新しいJava仮想マシンや、柔軟性の高い新しいセキュリティモデル、高い安定性、JFCの正式なサポート、CORBAを利用した分散オブジェクト環境への対応などの改良が加えられている。
2次元グラフィックスAPIのJava 2Dや3次元グラフィックスAPIのJava 3D、従来のAWTに代わるGUI環境のSwingなど、グラフィックス関係の新機能も豊富に搭載されている。
また、Java 2では国際化がさらにすすみ、Java 2Dを利用した各国語の高品質な表示や、IMFによる日本語入力方式の標準化など、プラットフォームに依存しない日本語環境の構築に必要な基本機能を備えた。
SunはCSLというライセンスに基づいてJava 2のソースコードの一部を無償で公開しており、利益を得なければ誰でもJava 2の改変や機能の追加が行なえるようになっている。
ちなみに、JDKのバージョンは現在1.4まで上がっているが、ブランド名は「Java 2」のままである。

Ruby:まつもとゆきひろ氏が開発したスクリプト言語とその処理系。
オブジェクト指向的な言語構造になっているが、通常の手続き型のプログラミングも可能。
C++言語などの本格的なオブジェクト指向言語では大げさと思われるプログラミングを支援することを目的としている。
作者が個人で開発しているフリーソフトウェアである。
Rubyは、Perlと同じくらい強力なテキスト処理能力、シンプルな文法などの特長をもっている。
インタプリタ型言語であるため、プログラムを作成したら、コンパイルなどの処理を行なうことなく、すぐに実行することができる。
UNIX上だけでなく、MS-DOS、Windows、Mac OS、BeOSの各プラットフォームにも移植されている。

Perl:Larry Wall氏が開発したプログラミング言語。
テキストの検索や抽出、レポート作成に向いた言語で、表記法はC言語に似ている。
インタプリタ型であるため、プログラムを作成したら、コンパイルなどの処理を行なうことなく、すぐに実行することができる。
CGIの開発によく使われる。
とにかく機能が豊富なことで知られる。
当初はUNIX上で利用されたが、現在ではWindowsを含む様々なプラットフォームに移植されている。

PHP:動的にWebページを生成するWebサーバの拡張機能の一つ。
また、そこで使われるスクリプト言語。
レイアウトの「雛形」となるHTMLファイル内に、処理内容を記述したスクリプトを埋め込み、処理結果に応じて動的に文書を生成し、送出することができる。
正式名称の「PHP: Hypertext Preprocessor」にもあるように、動的に生成されるページの作成に向いている。
また、XMLのサポートや各種データベースとの連携に優れている点などから近年普及しつつある。
プログラムの表記法はC言語、Java、Perlの各言語から転用したものがベースとなっているが、PHP独自のものもある。
言語仕様やプログラムはオープンソースソフトウェアとして無償で入手することができる。

C#:C言語/C++言語をベースに拡張しつつ、Java風の機能や表記などが盛り込まれている。
ガーベジコレクションや変数の管理強化など、Javaも備える機能が追加されている。
開発効率がC++から格段に向上する一方で、Visual Basicと同等以上の動作速度を持つアプリケーションを開発できるとされる。
C#で開発されたソフトウェアはMicrosoft社独自のMSILという中間言語によるプログラムに変換され、Microsoft .NETの共通動作環境である.NET Framework(CLR)がこれを解釈して実行する。
中間言語を挟むことでマルチプラットフォームへの対応を果たすねらいがあると見られており、こうした点も「MicrosoftのJava」と呼ばれる一因となっている。
※ガーベジコレクション→OSのメモリ管理機能の一つ。
プログラムが使用しなくなったメモリ領域や、プログラム間の隙間のメモリ領域を集めて、連続した利用可能なメモリ領域を増やす技術。
これが不完全なOSは次第に利用可能なメモリが減ってゆくため、一定期間ごとに再起動を強いられることになる。
Java言語の実行環境(JVM)は自身がガーベジコレクション機能を持っており、Javaプログラマがメモリ管理に気を使わなくてもいいようにしている。

2008年1月11日金曜日

大量のPDFの最後に同じページを差し込む

http://bbs.ddc.co.jp/mt/dtptubobbs/archives/1590pdf_20010208130100.htmlより
on open Fs
repeat with i in Fs
Doit(i)
end repeat
end open
on Doit(F)
tell application "Acrobatェ 4.05"
open F
insert pages (document 2) after -1 from (document 1) starting with 1 ツ
number of pages 1 without insert bookmarks
save document 2
close document 2
end tell
end Doit

Applescriptであればたぶんこんな感じでできます。

で、派遣先で試した結果、問題なく動作しました。
ページの最後だけでなく最初に挿入するには書き換えればよいのですが、よく分かりません。
野本さんのようにこなれた人が書かれたScriptは初心者には敷居が高すぎます。
hw001.gate01.com/bostonterrier/xyz/acrobat/AcrobatScripting.pdfから始めた方がいいと思います。結果報告は後日。

ついでに野本さん関連でググった結果、
http://www.incunabula.co.jp/dtp-s/hinemosu_degital/2000/0817.htmlより
 それとIllustrator 9のインストールCD-ROMには、AppleScriptに対応するためのプラグインが含まれているそうだ。インストールCD-ROMを開くと、ちゃんありました。「Illustrator 9.0 SDK」というフォルダの中に「Scripting Support」というプラグインがあって、このプラグインを入れるとIllustratorはAppleScriptに対応するのである。
 ただしこのスクリプト対応は、正式にアナウンスされていないので、サポート対象外と考えていいかも知れない。Illustrator Scripting GuideというPDFがあってこれがなんと434ページもあるが、全部英語なので、だれでもが簡単に使えるというわけではない。だれか日本語に訳して、Adobeの許可を取った上で、PDFのみを販売するんということもできなくはないと思うけどね。もっともそのうち日本語の解説本がでるかな。
 実はIllustratorのAppleScript対応は、8からあったもので、デベロッパに対しては配付されていたと聞いた。8から準備はされていたということだろう。今回は一般に配付したが、「使いたい人だけ」ということであろうか。
JavaScriptだけではなくAppleScriptでもイラレを制御できそうです。

AppleScript関連のサイト
http://homepage.mac.com/abemak/applescript/resource.htmlにいろいろあるが
とりあえずAppleScript Lab.から再度チャレンジ。しかし、昔あったサイトの多くが姿を消したには理由があるはずなのだが、分からん。
特筆すべきは大森さんのサイト。イラレやQちゃんはサンプルスクリプトまで紹介されている。
いまさらながらQちゃんはhttp://hw001.gate01.com/bostonterrier/xyz/quarkXpress33/Nifty/begin0712.html

あとhttp://osx-navi.main.jp/text/pdf.htmlにPDFをJPEGに変換するフリーウエアが紹介されていた。

2008年1月7日月曜日

改行の扱い(Perl)

http://yoshihashi.blogspot.com/2007/12/script.htmlに書いたScriptなのだが、Blackオーバープリも拾ってしまうため、Blackオーバープリ以外のオーバープリチェックをと考えコメントに修正Scriptを書いたのだがcheckしない!!!
で、ジュンク堂で立ち読みし調べたところ、どうやらUnix、Win、Macの改行コードの扱いに原因らしい。
WinはCR+LF、MacはCRのみは良く知られている。そのためCR=¥n、LF=¥rと思っていたが、実際はCR=¥r、LF=¥nだった。
となると
s/^1¥nsO$¥n0¥s0¥s0¥s1¥sK//g;は
s/^1¥nsO$¥r0¥s0¥s0¥s1¥sK//g;で除去されるはずと思ったが、Perlメモをよく読むとこのように書いて正常に動作するのは Windows(DOS) と UNIX の perl のみで,Mac の perl では正常に動作しません.よく「改行コードは Windows(DOS) では ¥r¥n,Mac では ¥r,UNIX では ¥n である」という人がいますが,これはある意味正しいと言えなくもないのですが,根本的には間違っています.」とある。

汎用性あるやり方はPerlメモに紹介されているように改行コードを最初に統一しなくてはならない。
わかりやすく書くなら
s/¥x0D¥x0A|¥x0D|¥x0A/¥n/g;なのだが
スピードを優先させるなら
s/¥x0D¥x0A/¥n/g;
tr/¥x0D¥x0A/¥n¥n/;

Mac環境で完結するのであれば
s/¥x0D/¥n/g;でいけるはず。

2007年12月26日水曜日

Script修正

http://yoshihashi.blogspot.com/2007/05/perl2.htmlで
LFキャラcheckを作りましたが、ほとんど使ってませんでした。
で、先日あるファイルをcheckしたもののアラートは表示されなかったので、そのままRIPに投げたら見事に字詰めが変わってました。LFキャラが使用されてたんです。|||||(;´Д`)|||||
#!/user/local/bin/perl
while(<>){
if(/¥(¥¥012A¥)/){
print"$ARGVにLFキャラが使用されています。¥n";
}
#バックスラッシュは&#165;(半角)に置き換えてます

のどこが間違っていたのか調べてみました。
テストデータはLFキャラ+欧文半角のAで作成。
LFキャラを全角スペースに置き換えたfileをエディタで開き、違いを捜したところLFキャラが使用されていたfileには(¥012A)が使用されていたのです。まぁ、それで(¥012A)=LFキャラとしてしまったのですが、LFキャラ+全角文字ですと(¥012)となります。はぁ~、、、検証不足でした。
で、(¥012)で検索してしまいますとLFキャラ+ASCII文字が漏れてしまうので、
while(<>){
if(/¥(¥¥012/){
print"$ARGVにLFキャラが使用されています。¥n";
}
に直しました。

で、ついでにオーバープリントのcheckもしようと調べました。
あぷらいとさんのaiデータ解析のページを参照。
塗りのオーバープリは「1 O」、線のオーバープリは「1 R」となってますので

while(<>){
if(/^1 O$/){
print"オーバープリが使用されています。¥n";
}

にしたら反応しません(^^;A
半角スペースは¥sで表記するのでした。
ついでに^は行頭、$は行末のPerl表記です。
塗りのオーバープリのあるfileをエディタで開くと「1 O」のみの行が必ずあります。
で、まとめたScriptがこれ↓
#!/user/local/bin/perl
while(<>){
if(/¥(¥¥012/){
print"$ARGVにLFキャラが使用されています。¥n";
}
if(/^1¥sO$/){
print"$ARGVに塗りのオーバープリが使用されています。¥n";
}
if(/^1¥sR$/){
print"$ARGVに線のオーバープリが使用されています。¥n";
}
}

こんなド初歩のことに気付かないなんて、道は遠すぎます。・゚・(つД`)・゚・。

2007年12月14日金曜日

サブレイヤーの問題と削除、ほか

風邪をひいてblogの更新をさぼってました。
ただ今、巡回途中。
http://chiruchirupon.blog119.fc2.com/blog-entry-13.htmlより
サブレイヤーの困ったところ ~v10の場合~
サブレイヤーのオブジェクトをコピペすると、サブレイヤーごとコピーされる(サブレイヤー内の全部を選んだ場合)、親レイヤーの中に直接オブジェクトが入る(サブレイヤー内の一部を選んだ場合)ということが起きる。
レイヤーごとコピーされると、同じ名前のサブレイヤーがどんどん出来たり、せっかくレイヤー分けしたはずなのに、そのレイヤーに入らなかったり。同じファイルの中でも、違うファイルから持ってきても。Alt押しながらのコピーは問題ないけど、作業はそれだけで済むはずも無い。データの中身を整理された状態で編集するためにレイヤー分けしているのに、それを乱すのだ。
それに親レイヤーのロックが解除されていると、オブジェクトメニューの[すべてをロック解除]でレイヤーのロックごと解除されるのだ。サブレイヤーはレイヤーじゃないのか?

サブレイヤーの困ったところ ~CS2の場合~
サブレイヤーごとコピーはされなくなったようだ。レイヤーは増えない。よかったーと思ったら、サブレイヤー内の一部を選んでのコピペで、親レイヤーの中に直接オブジェクトが入る挙動は相変わらずだった。オブジェクトメニューの[すべてをロック解除]でレイヤーのロックごと解除されるのも同じ。ダメやん…。

http://chiruchirupon.blog119.fc2.com/blog-entry-20.htmlより
サブレイヤーの困ったところを、追加で見つけたのでこれもメモ。何も入っていないサブレイヤーがあると、書類内容を全選択しての文字のアウトライン化が一度に行えない。(v10)
空のサブレイヤーも選択している状態で[文字>アウトラインを作成]で文字をアウトライン化しようとすると、この空のサブレイヤーより下にある文字がアウトライン化されない。
さらに、同じことをv9、CS2で試してみたが空のサブレイヤーは、[Ctrl+A]では選択されないので、エラーも出ない。

この件はhttp://homepage.mac.com/takeharuyabe/illustrator/aiscript/javascript1.htmlに解決法が載っていた^^

m = documents[0].layers.length;
for (j=m-1; j >= 0; j--)
{
n = documents[0].layers[j].pageItems.length;
if (n == 0)
{
documents[0].layers[j].remove();
}
}

で、http://www.itmedia.co.jp/bizid/articles/0712/12/news004.htmlより
 「プログラミングにはずっと憧れていました。ある日、よく見ているブログで『文系ブロガーはみんなPHPをやるべき』ということが書かれていて、それで思い立って始めてみたのです」。2007年2月のことだった。『独習PHP』(翔泳社)を買ってきて読み込み、なんとなく全体像をつかんだ。さて、何を作ろうか、と思ったときにちょうどいい題材があることに気が付いた。

で、YouTube→「村上春樹風に語るスレジェネレータ」→「訃報ドットコム」→「圧縮新聞」となる。
2007年2月にプログラミングを始めたばかり。。。

http://d.hatena.ne.jp/nitoyon/20071212/pipes_page_fetchが評判がいい
Yahoo! Pipes の使い道といえば、次の2つだと思います。
1. RSSリーダーで読むための XML 作り
複数の RSS を結合したり、見た目を整えたりして、自分専用の RSS を作る。
(例)サイトの最新被ブックマークを livedoor Reader で読むための Pipes
任意のページの HTML を取ってこれるようになったおかげで
・RSS 配信していないページの RSS を作れます。
・全文配信していないページの RSS の全文配信版を作れます。

2. Web サービスとの連携
JSONP に対応してるので、JavaScript と組み合わせてサーバーレスに色々できる。crossdomain.xml に対応しているので、ActionScript と組み合わせてサーバーレスに色々できる。

2007年12月8日土曜日

Javascript, Perl

Illustrator 10 自動化作戦 with JavaScript からサンプルスクリプト(Mac)をダウンロード。
Chapter5の133を実行して感動! AppleScriptとの連動でボタンひとつでOK^^
win版は拡張子jsがついているものの、拡張子をtxtに変えればエディターで開ける。

早速、「JavaScriptの絵本」を買ってきました。
チラ見したところPerlと構文が似ているだけにPerlの復習もできそう。
結局、Perlはs演算子で止まってしまった。
配列、連想配列を仕事でどう活かすかというイメージが湧いてこなかったために、そこから先に進めなくなったというのが実感。
ゴールが見えない(想像できない)というのは学習する上で大きなマイナスだとつくづく思う。


あと今日見つけたblog
http://blog.xole.net/article.php?id=640
勉強になりまする。

↓あとこんなのもあった(笑
http://yusukebe.com/archives/07/12/05/103614.html

2007年12月5日水曜日

Javascript

DTPの駆け込み寺に
意外にIntel Mac+AI10の組み合わせは良いかも知れないですね(笑)。

なんて話があったので、かねてから気になっていたJavascriptをかじろうかとググったら
「Illustrator 10 自動化作戦 with JavaScript」著者:古籏一浩 本体価格:2,600円 がアマゾンで8000円近い値段をつけています(高っ!!)
http://www.openspc2.org/book/IllustratorCS2/を参考に少しづつ勉強しようかなと思ってます。

http://www.pictrix.jp/ai/index.htmlのOverPrint_Search.jsとPathJoiner.jsは必須。他にもいろいろある^^

http://tu-kazu.jp/javascript1.phpより
最近では、XMLなどを利用したInDesignの自動組版なるものが幾つか出てきています。
大変便利な物だと思うのですが、先日こんな仕事が入ってきました。

データはすべてWindows版InDesign CS2で作成されているのですが、1ファイルに1頁だけで、1万ファイルほどの印刷依頼なのですが、どうやら自動組版で作成された物のようでした。

ファイルをPDFに書出して、面付け作業を行いCTP刷版、印刷加工となるのですが、1ファイルをPDF化するのに、ファイルを開いて、PDF書出しの設定を行い、保存完了までに手作業で約1分。

1万ファイルだと1万分かかる事となり、時間だと約167時間、日だと24時間働いて約1週間程掛かる計算となります。
これを10人程度が貫徹すれば1日あれば何とかなるかもしれませんが、現実的ではありませんよね。

現場が助けてくれと泣きついてきたので、しゃねーなと考えてみたのですが、InDesign CS2にAcrobat 7のDistilerで直接inDesignの書類をPDF化できるAcrobat用のプラグインが付属しています。
(Adobe Resource CS2 CDのテクニカル情報>InDesign CS2内にInDesign PDF 自動処理 for Acrobat 7というプラグインが付属しています。詳しくは、その中のPDFを参照して下さい。)

これでやれば、文句も言わずにパソコンが一生懸命にやってくれるだろうと思ったのですが、事はそう簡単には進みませんでした。

実際にPentium 4/1GH程度のマシンで 作業をさせてみると、1ファイル処理をするのに、約5分ほど掛かってしまうのです。Mac G5 2.3GH Dualでやってもあまり変わりませんでした。

これではどうしようもないと思い、スクリプトで対応させるかと思ったのですが、Windows版のInDesignで、フォントもMS明朝などWindowsフォントが多く使われているため、AppleScriptでは対応できませんでした。
Visual Basicは開発環境を持たない事と、あったとしても勉強から進めないと出来ないので、JavaScriptを利用する事となりました。

前置きが長くなりましたが、Java Scriptを使い、indesign CS2で書類を開き、PDF書出しを連続で行うようなスクリプトを考えてみました。

ちなみに、Java ScriptだとMacでもWinでもちゃんと動いてくれました。
気になる作業時間ですが、1ファイル約10秒程度で処理をしますので、連続で処理できれば28時間程度ですむ計算になります。

1台専用のパソコンで処理を掛けながら、別のパソコンから出力を掛けることで大幅な時間短縮が可能となります。

本題 さて作業を自動化するにあたり、そのワークフローを考えてみよう。

1.作業すべきファイルの選択。複数あるので、フォルダ毎の指定とする
2.書出すべき、PDFの保存先の指定
3.ファイルを開き、PDF書出しをおこなう
4.ファイルを閉じる

これをファイル分繰り返す事となる。

folderObj = Folder.selectDialog("フォルダを選択してください");
fileList = folderObj.getFiles("*.indd");
for (i=0; i<fileList.length; i++)
{
 fileObj = new File(fileList[i].fsName);
 app.open(File(fileObj));
 app.activeDocument.exportFile(ExportFormat.pdfType, File(fileObj.fsName+".pdf"), false, "PDFPreSet");
 app.activeDocument.close(SaveOptions.no);
}

上の作業はなんとこれだけのスクリプトで出来てしまいます。
簡単に説明しましょう。

folderObj = Folder.selectDialog("フォルダを選択してください");

見てお分かりだと思いますが、Folder.selectDialog("ダイアログに表示する文章")で、フォルダを選択するダイアログが出てくる。
選択した結果を変数folderObjに代入しています。

fileList = folderObj.getFiles("*.indd");

では、フォルダの中にある、InDesignのファイルだけを抜き出していきます。
変数fileListにIndesignファイルが配列形式で代入されたわけです。
("*.indd)で、拡張子がinddだけの物をせんたくしているのです。

for (i=0; i<fileList.length; i++)
{

}

繰り返し作業を行い、配列の中から一つずつファイルを選択して作業します。

fileObj = new File(fileList[i].fsName);

拾いだしたファイルの場所と、ファイル名を変数fileObjに代入します。
作業ができたものは、同じ場所に名前を変えて保存する事とします。
このfileObjから保存先と、保存名を作成して行きます。

app.open(File(fileObj));

ファイルを開くコマンドです。

app.activeDocument.exportFile(ExportFormat.pdfType, File(fileObj.fsName+".pdf"), false, "PDFPreSet");

これが、PDFを書出すコマンドですが、"PDFPreSet"と言うところに注目して下さい。
これは、InDesign側でPDF書出しプリセットで事前に必要なプリセットを作っておく必要があります。
トンボの有無や、塗り足しの有無。PDFの形式など設定しておき、プリセットして保存します。
この際、アルファベットだけにしておいた方が、文字のトラブルなどを考えずに済むので、良いのではないでしょうか。

exportFile()が書出しコマンドだが、プロパティが幾つか必要になる。

exportFile(ExportFormat.pdfType, File(fileObj.fsName+".pdf"), false, "PDFPreSet");

ExportFormat.pdfType 書出しフォーマットをPDFに設定
その他にもepsType・inCopy・jpg・rtfなど書出せるタイプすべてが用意されている
File(fileObj.fsName+".pdf") 書出す場所と、ファイル名を指定する。
今回は単純に、元あった場所に、そのまま.pdfの拡張子を付けただけのファイル名とした。
false 書出し設定のダイアログを開くかの設定をおこなう。
falseだと、ダイアログは開かない。trueにすると保存のたびに、保存形式などを尋ねてくる。
"PDFPreSet" InDesignのPDF書出しプリセットのプリセット名を入れる。

app.activeDocument.close(SaveOptions.no);

ファイルを閉じるコマンドだが、オプションとして、現在は保存をせずに閉じる設定です。
SaveOptions.yesとすれば、保存して閉じる事となる。

これで一連の作業を繰り返せば出来上がりです。

Java scriptの基本的なリファレンスは、Adobe Resource CS2 CDのテクニカル情報>InDesign CS2>スクリプティンク>InDesign CS2 スクリプトリファレンス.pdfを参照して下さい。

Java Scriptを書くには、テキストエディタでも構いませんが、保存形式をUTF-8形式で保存し、拡張子として.jsxと付けます。
できたスクリプトファイルをAdobe InDesign CS2フォルダの中のPresets>Script内に入れます。

inDesignを起動し、ウィンドウメニューの自動化の中のスクリプトウィンドウを開き、さきほど保存したスクリプトファイルをダブルクリックで実行すれば、作業が開始致します。

テキストエディタでなくても、Adobe Creatave suitにはExtendScript Toolkitという開発環境が付属してきます。
これを使うと、スクリプトのデバッグなどが非常にやりやすくなっており、便利です。

2007年11月28日水曜日

Perlの超基本スクリプト

http://tama-san.com/index.html#2007-11-26より
# utf8でファイル入出力
use utf8;
foreach $ARGV (@ARGV) {
open(OUT,">:utf8","$ARGV.new") unless -e "$ARGV.new";
open(IN,"<:utf8","$ARGV") || die "can't open";
while () {
s/^/0/; #ここで処理
print OUT;
}
close IN;
close OUT;
}

UTF-8を使う環境にないだけに悲しい。。。
新しい環境の職場を捜さなくては。と、思いつつも繁忙期なだけに抜けたら迷惑かけるよなぁ~。

2007年11月18日日曜日

課題のScript

http://www.seuzo.jp/st/Other/AS2.0.html
未だに手つかずのまま。何とかものにしたいと思いつつ早数年。

http://d.hatena.ne.jp/amachang/20061201/1164986067より
[JavaScript] とてもシンプルに自分自身が属する script 要素を取得
<script>
var currentScript = (function (e) { if(e.nodeName.toLowerCase() == 'script') return e; return arguments.callee(e.lastChild) })(document);

alert(currentScript);
</script>

こうすることで、currentScript はこの script 要素を指す。
以下略。

う~ん、読んでも訳分からん。

http://www.gac.jp/article/index.php?stats=question&category=5&id=15439&command=msgより
DTP関係のQ&Aは寺と壺は昔のこと。こっちが主流になりそうな予感というか毎日チェックする必要あり。


なんちゃって個人情報
いずれ使う時が来る。

2007年11月15日木曜日

住所抽出

CLさんのとこから^^
http://blog.cgfm.jp/cota/archives/54
http://blog.cgfm.jp/cota/archives/51

movimap_scrape.pl
#!/usr/local/bin/perl
use strict;
use warnings;
use Web::Scraper;
use Data::Dumper;
use Template;
use URI;
use Geography::AddressExtract::Japan;

use encoding "utf8", STDOUT => "utf8";

my $uri = URI->new("http://www.movimap.net/kodawariblog/family/");
my $scraper = scraper {
process '//div[@class="box"]/div[@class="box01"]/h3/a', 'link[]' => '@href', 'title[]' => 'TEXT';
process '//div[@class="box"]/div[@class="box02"]/p', 'address[]' => 'TEXT';
};
my $result = $scraper->scrape($uri);

my @list;
for my $i ( 0 .. scalar @{$result->{"address"}} - 1 ){
my $addr = Geography::AddressExtract::Japan->extract($result->{"address"}->[$i]);
push @list, {
address => $addr->[0]->{"city"} . $addr->[0]->{"aza"} . $addr->[0]->{"number"},
link => $result->{"link"}->[$i],
title => $result->{"title"}->[$i],
};
}
my $tt = Template->new({
INCLUDE_PATH => ".", EVAL_PERL => 1
});

$tt->process("map.tt", { result => @list });

Geography::AddressExtract::Japan最高っす!

2007年10月28日日曜日

ExcelをCleanUpする正規表現

妄想科學日報より
御存知の通り、Excelが吐き出すHTMLは「汚い」。Excelでの見栄えをそのまま再現することに注力するあまり、全セルに適当なclass指定、ヘッダに長い埋め込みスタイルとから始まる独自スクリプト多数、全漢字にルビ(ただし非表示)。そのままでは編集も困難、しかしセル数がセル数だけに手動での移し替え作業も困難である*1。
特にリターン/タブを含めた表記になっているので、そのままでは移植できない部分もある。一応半角スペースは\s、 タブは\t、リターンは\r(Macなので改行コードCRで作業している。WinならCR/LFなので\r\nとする必要があるだろう)に置き換えた。

途中改行の削除
検索文字列
([^>])
置換文字列

Excel-HTMLは長い文字列を適当なところで改行する。その結果として、属性を含むタグの置換などの際、不規則に改行などが含まれ置換を困難にしている。ひとまずタグの区切り以外での改行をすべて削除した。

不可視属性の削除
検索文字列
<span[^(style)]*style='display:[^(none)]*none'>.*?
置換文字列

不可視にしている部分は不要なデータと判断、中身ごと削除する。

Table要素以外の削除
検索文字列
(<[^t][^>]*>)+([^<]*)(]*>)+
置換文字列
$2

つまり<t以外から始まり</t以外で終わるタグ部分だけを削除、間に挟まれた<以外の文字(即ちタグでない部分)を残す。

スタイル他、余分な属性の削除

検索文字列
((style)|(x:fmla)|(width)|(height))=[^>]*
置換文字列

様々な鬱陶しい属性、中心的には見栄え再現のためのインラインスタイルだが、そうした余分なものを切り落とす。

タグ文字を反映させるためにhttp://katsubemakito.net/cgiperl/scalar/string/html.htmlを参考

2007年10月20日土曜日

CMYK→DIC

http://d.hatena.ne.jp/media-print/20071019より
CMYKからDICに変換
ここまでのTipは使用しているデザイナーさんも多いと思います。これとは逆に、まれにCMYKを1色ないし2色などで印刷したい場合があります。この時、CMYKからDICナンバーを割り出します。
ここでPhotoshopを使用します。[カラー]ウィンドウのカラーピッカーで先ほどの金赤[C:0 M:100 Y:95 K:0]を入力します。
 
このまま[カラーライブラリ]をクリックすると近似のDICナンバーが出ます。
 
上記のように[DIC565]と表示されました。画面上ではかなり違う色に見えますが、DICチップを比べると画面上ほど色の差はありません。[DIC565]をCMYK分解すると[C:0 M:90 Y:100 K:0]に分解されますので差は許容範囲と思います。あとはDICチップや印刷結果を見比べ微調整することになります。

知らなんだ。。。
今までせうぞーさんのhttp://www.seuzo.jp/st/macjperl/index.htmlにあるCMYK濃度&カスタムカラー名 1.02を使って満足して研究心が欠如してました(反省)。

2007年9月14日金曜日

文字化けしないzipScriptのコピペ

(*
★このスクリプトについて
Windowsで文字化けしないzipを作るスクリプト
転載、改造、再配布OK。

★準備
・convmvのインストール 
http://www.j3e.de/linux/convmv/
からconvmvをダウンロードして解凍します。

方法1:簡単な方法
解凍したフォルダ内にあるconvmvを
アプリケーションフォルダに移動します。

方法2:ターミナルを使う方法
ターミナルで解凍したフォルダに移動して
$ make
$ sudo make install
のコマンドを実行します。これでインストール完了です。

★使い方
・Finderで変換したいファイルを選択して、このスクリプトを実行します。
OS標準の機能ではスクリプトメニューが便利です。
またこのスクリプトをアプリケーションとして保存するとドロップレットとして使うことが出来ます。

★注意点
ファイル名に含まれる文字によっては文字化けしないzipが作れないかもしれません。
*)

(*
原案:
ID:76G3QLdG0さん
0. convmvをインストール。
1. UFSフォーマットのイメージファイルをディスクユーティリティで作成し、マウント。
2. 圧縮したいものをそのボリュームにコピー
3. メタデータの「._*」ファイルを削除(お好みで)
3. convmv -r -f utf8 -t sjis * という感じでファイル・フォルダ名を変換
4. zip -r hoge.zip * などで圧縮。

ID:MUvS6O+B0さん
convmv --listにsjisが入ってないから、
cp932を使ったほうが安全かも。
> convmv -r -f utf8 -t cp932 *
*)

(*
更新履歴:
2007-09-10 初公開
2007-09-11 同名のzipファイルがある場合ユニークな名前にして上書きされないようにした
ファイルサイズを計算してディスクイメージを作るようにした
圧縮するファイル名によってはzipファイルの名前を作成する時にエラーが出ていたのを修正

*)
-----
on run
tell application "Finder"
set theFiles to selection
if (count theFiles) > 0 then
set path1 to item 1 of theFiles as Unicode text
set path2 to path to me as Unicode text
--display alert path1 & return & path2
if path1 is path2 then
beep
display dialog "アプケーション自身は圧縮できません" buttons {"OK"} default button 1
return
end if

my makeSjisZipFile(theFiles)
else
beep
display dialog "処理対象のファイルが無いです。" buttons {"OK"} default button 1
return
end if
end tell
end run

on open (inFiles)
my makeSjisZipFile(inFiles)
end open


on makeSjisZipFile(inFiles)
set convmvPath to my convmvPath()
if convmvPath is "" then
beep
display dialog "convmvが見つからないので処理を停止します。" & return & "このスクリプトをスクリプトエディタで開くと説明が書いてあります。" buttons {"OK"} default button 1
return
end if

set theFileCount to count inFiles

--zipファイル名作成
tell application "Finder"
set zipPathWithoutExt to (item 1 of inFiles as alias) as string
if theFileCount is 1 then
if zipPathWithoutExt ends with ":" then
set zipPathWithoutExt to text 1 thru -2 of zipPathWithoutExt as Unicode text
end if
else
if zipPathWithoutExt ends with ":" then
set zipPathWithoutExt to text 1 thru -2 of zipPathWithoutExt as Unicode text
end if

set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to {":" as Unicode text}
set theList to text items of zipPathWithoutExt
set folderPath to (items 1 thru -2 of theList) as text
set AppleScript's text item delimiters to oldDelimiters

set zipPathWithoutExt to folderPath & ":archive"
end if
end tell
set zipPath to makeUniqueName(zipPathWithoutExt, ".zip")


set allFileSize to 1024 * 12 --よくわからんがシステム領域やファイル名とかの保存分を考慮して余裕を持たせておく。
if theFileCount is 0 then
beep
display dialog "処理対象のファイルが無いです。" buttons {"OK"} default button 1
return
else
--ファイルの合計サイズを計算
repeat with theFile in inFiles
tell application "Finder"
set theName to name of theFile
set theAlias to theFile as alias
set theAliasPath to theAlias as string
set theFilePath to ヌclass psxpネ of theAlias as string
set theSize to ヌevent sysoexecネ "du -sk " & ヌclass strqネ of theFilePath & " | perl -ne 'm/^([0-9]+)/; print $1;'"ア

set allFileSize to allFileSize + theSize + 16 --念のため多めに増やしてみる
if theFilePath ends with "/" then
set allFileSize to allFileSize + 256 --フォルダだとさらに多めに増やしてみる
end if
end tell
end repeat
end if


set theDmgName to "sjisZip_" & (ヌevent sysoexecネ "date '+%m%d_%H%M%S'") & ".sparseimage"
set theDmgPath to ヌclass psxpネ of ((path to temporary items folder as Unicode text) & theDmgName)

-- disk imageを作る
ヌevent sysoexecネ "hdiutil create -fs UFS -size " & allFileSize & "k -volname " & ヌclass strqネ of theDmgName & " " & ヌclass strqネ of theDmgPath -- -type SPARSE

--マウント。アンマウント用にディスク情報を保存しておく
set devName to ヌevent sysoexecネ "hdiutil mount " & ヌclass strqネ of theDmgPath & " | perl -ne 'print $1 if m!^([/a-zA-Z0-9]+).*" & theDmgName & "!'"

set dmgVolumePath to "/Volumes/" & theDmgName

set theIndex to 1
try
repeat with theFile in inFiles
tell application "Finder"
set theName to name of theFile
set theAlias to theFile as alias
set theAliasPath to theAlias as string
if theAliasPath ends with ":" then
--フォルダ
set theFilePath to ヌclass psxpネ of theAlias as string
ヌevent sysoexecネ "ditto --norsrc " & ヌclass strqネ of theFilePath & " " & ヌclass strqネ of dmgVolumePath & "/" & theName

--.DS_Store削除 -- ディスクに対してやるとtrashフォルダでエラーが出たので個別にやる
ヌevent sysoexecネ "cd " & ヌclass strqネ of dmgVolumePath & "/" & theName & "; find . -name '.DS_Store' -delete"

else
set theFilePath to ヌclass psxpネ of theAlias as string
ヌevent sysoexecネ "ditto --norsrc " & ヌclass strqネ of theFilePath & " " & ヌclass strqネ of dmgVolumePath
end if
end tell
end repeat
on error msg
display dialog "ディスクイメージへのファイルのコピー中にエラーが起きたので処理を中止します。" & return & msg buttons {"OK"} default button 1
return
end try



ヌevent sysoexecネ "cd " & ヌclass strqネ of dmgVolumePath & "; " & convmvPath & " -r -f utf8 -t cp932 * --notest;" --convmv
ヌevent sysoexecネ "cd " & ヌclass strqネ of dmgVolumePath & "; zip -r " & ヌclass strqネ of ヌclass psxpネ of zipPath & " *" --zip作成

ヌevent sysoexecネ "hdiutil detach " & ヌclass strqネ of devName --アンマウント
ヌevent sysoexecネ "rm " & ヌclass strqネ of theDmgPath --dmg削除

tell application "Finder"
set selection to zipPath as alias

beep
activate
display dialog "zipの作成が終わりました" buttons {"OK"} default button 1
end tell
end makeSjisZipFile


on convmvPath()
try
ヌevent sysoexecネ "ls /Applications/convmv"
return "/Applications/convmv"
end try

try
ヌevent sysoexecネ "ls /usr/local/bin/convmv"
return "/usr/local/bin/convmv"
end try

return ""
end convmvPath


on makeUniqueName(inBaseHFSPathName, inExtention) --
tell application "Finder"
try
set theIndex to 1
set theTestName to inBaseHFSPathName & inExtention

repeat
theTestName as alias -- ファイルが無ければここでエラーになるのでループ終了
set theTestName to inBaseHFSPathName & "_" & theIndex & inExtention
set theIndex to theIndex + 1
end repeat
end try
end tell

return theTestName
end makeUniqueName

2007年9月12日水曜日

Windowsで文字化けしないzipを作る

http://27-75-31.cocolog-nifty.com/blog/2007/09/windowszipapple_d900.htmlより
Mac OS XからFinderで簡単にzipファイルを作れるようになりました。しかし、保存されるファイル名の文字コードがユニコードらしくてWindowsで解凍すると日本語ファイル名が文字化けしてしまいます。

これを解決する方法がここ、これに書いてあって試した所日本語でもちゃんと文字化けしなくて解凍できるzipができました。ただ手順が手作業でやるには面倒なのでこれを自動でやるAppleScriptを作ってみました。

OS-XのFinder機能でzipファイルが作れるのか。。。知らなかった。。。orz
で、Windowsの文字コードってShift-JISだっけ? 文字コードが基本なだけに勉強不足を痛感。
シフトJISとUnicodeとの関連はどうなるのか?