はがきデザインキット2020の出力するCSVデータをカメラのキタムラの要求するCSVデータに変換する
はがきデザインキット2020 | ゆうびん.jp の出力するCSVデータを宛名シール印刷 - | 年賀状(令和2年)ならカメラのキタムラの要求するCSVデータに変換する.
経緯
うちの親は去年喪中だったので去年は年賀状を作らないらしいけれど今年は作るらしい.
宛名を印刷する方法として去年うまく行った方法である, 郵便局の提供するはがきデザインキット2020 | ゆうびん.jp を使って印刷しようとしていました.
ダメでした. 紙づまりになるしそれを回避しても印刷できません.
私も相当見てみましたが原因不明すぎて諦めました.
去年は喪中はがきなので普通紙だったけど今回は写真が既に印刷されている硬い紙だからダメだったみたいです.
仕方がないのでWindowsでXPSに変換(PDFだとはがきサイズが選べない…)してPDFに変換してセブンイレブンに持っていきました. コンビニの業務用プリンタならこのはがきにも印刷できるだろうと. そもそもセブンイレブンのプリンタはXPSに対応していたのでPDFに変換するのは無駄だったのですが, そこでもやはり紙づまりを発生させていました.
他のコンビニははがき印刷出来ないので詰みです.
こんなはがきを何故採用したのか… ヨドバシカメラのサービスでウラ面だけ印刷してもらってきたらしいのですが…
それで宛名シール印刷 - | 年賀状(令和2年)ならカメラのキタムラでシールを印刷してもらう方法を見つけたそうです.
しかしこれはCSVファイルに今数えたら103もの住所データを入れないといけません. 面倒.
なのではがきデザインキット2020 | ゆうびん.jp がエクスポートするCSVを向こうの要求するCSVファイルに書き換えることにしました. CSVとか全然知らないけど大丈夫か?
プログラム
BEGIN { | |
FS = "," | |
OFS = "," | |
print "姓1,名1,敬称1,姓2,名2,敬称2,姓3,名3,敬称3,姓4,名4,敬称4,姓5,名5,敬称5,姓6,名6,敬称6,〒番号,住所1,住所2,住所3,会社名,部署,役職,御中" | |
} | |
NR > 1 { | |
print $1, $2, $20, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", $7, $8 $9 $10, $11, "", $12 | |
} |
awkで書きました. ネットから拾ってきたワンライナーじゃないawkを書くのはもしかしたら初めてかもしれません. CSVもよくわからないしawkもワンライナー以外初めて書くので15分強かかってしまいました. 出力データ正しいのか見比べながら並び替えたのでまあ仕方がないですね.
最大詰まりポイント.
なるほどawkの文字列連結は+じゃなくて併記なのか
— エヌユル (@ncaq) December 24, 2019
どちらのCSVもShift_JISなのでnkfを介して以下のように使います.
nkf -w -x -Lu ~/Downloads/address_list.csv|awk -f atena-csv-from-kitamura-to-japanpost.awk|nkf -s -x -Lu -c > CSV_atena.csv
結論
全部セブンイレブンに任せた方が良いと思います. 来年からはそうしてもらいましょう.
まあセブンイレブンのサービスに突っ込むCSVを生成するのはやっぱりまた自分なんですけど…
自分自身は一切年賀状を10年近く書いてないのに何故か毎年のごとく年賀状のトラブルを解決している気がしますね?