InDesign居残り補習室

どれだけ勉強しても上達しない管理人の、InDesign備忘録を中心に。たまにブックレビューなども。

スポンサーサイト  --/--/--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


作業メモ:テキスト処理4  2007/03/28

# 少し前まで、rubyのバージョン1.8.1を使っていた。
# 今は1.8.6が出ているようだが、私の端末には1.8.4が入っている。

さて、今回は名刺の仕事。

00001[タブ]妄想印刷(株)[タブ]いき♂ espresso

といったtsv形式のテキストが提供された。
これをInDesignの台紙にデータ結合で流し込もうと思ったが、今回はCSで制作しなければならない。
しかし、すでに別のオペレータにより面付け状態の台紙が組まれており、テキストを流し込むためのフレーム(1レコード3行分がぎりぎり入る大きさ)が連結された状態で台紙に配置されていた。
流し込む条件は以下の通り。


・各フィールドごとに段落スタイルが用意されている。
 従って、支給データをタグテキストに置換して流し込みたい。
 (左から順に 01番号 / 02事業者名 / 03氏名 )

・氏名は、支給データは必ず姓と名の間にスペースが入っている。
 姓または名いずれかが一文字の場合のみスペースを残し、他はスペースを削除する。

・(株)は株式会社に。




今回は以下のrubyスクリプトにて置換した。

#!C:/Program Files/Activeruby-1.8/bin/ruby -Ks
while line = ARGF.gets
line.sub!(/¥t([^¥t]{2,}) ([^¥t]{2,})$/) {"¥t#{$1}#{$2}"}
line.sub!(/^(¥d+)¥t([^¥t]+)¥t([^¥t]+)$/) {"<pstyle:01番号>#{$1}¥n<pstyle:02事業者名>#{$2}¥n<pstyle:03氏名>#{$3}"}
line.sub!(/(株)/) {"株式会社"}
line= "<SJIS-WIN>¥n" + line if $. == 1
print line
end

スポンサーサイト

訂正。

line.sub!(/\t([^\t]{2,}) ([^\t]{2,})$/) {"\t#{$1}#{$2}"}

のところ、

line.sub!(/\t([^\t]{2,}) ([^\t\r\n]{2,})$/) {"\t#{$1}#{$2}"}

にしないと一文字名の人をうまく置換できなかった。

line.sub!(/\t([^\t]{2,}) ([^\s]{2,})/) {"\t#{$1}#{$2}"}

でも置換できるかな? あとで実験しとこ。

[^\s]{2,} でもOKだった。

あとでわかったことけど、一文字姓/一文字名の人はスペースふたつ必要だった。
ま、今回の支給データには一文字姓/一文字名の人は含まれていなかったけれども。

コメントの投稿





管理者にだけ表示を許可する

トラックバック

http://kstation2.blog10.fc2.com/tb.php/101-6ff4b219

(新しい記事)← ルーチンワークの見直し
上から読んでも… →(古い記事)

 | HOME | 

カレンダー

03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -

FC2カウンター

2006年3月28日カウント開始

Amazon

FC2 Affiliate

動くPDF

プロフィール

あわせて読みたい

あわせて読みたいブログパーツ

最近の記事

最近のコメント

最近のトラックバック

Lc.ツリーリンク

RSSリンク

直感カテゴリーツリーV1.1

ブログ内検索

ブロとも一覧

marumi

神楽崎 ゆう


■ ブログ名:I'm writing NOVEL

七篠 銀字


■ ブログ名:風と夜空と氷の国

MS


■ ブログ名:へなちょこDTP

桜桃


■ ブログ名:追憶の桜吹雪

瑪瑙 輝遊


■ ブログ名:千里の道も一歩から

magatu


■ ブログ名:unsigned

暁 鷲 (あかつき しゅう)


■ ブログ名:空を裂け!

NewMark

C-Roll


FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。