ブラザー・プリンター

記憶ではずっと Epson EP-801 から EP-811 までオール染料の機種。
しかし何度か水濡れした封筒を受け取ったことがあったので、顔料インクの機種を探そうと思った。
Epson 機での不満は重送(二枚差し)くらいだったが。

「今度ブラザー使ってみようか」
価格.com でピックアップしたのが 2021/09 発売の DCP-J4140N。

  • ハガキが 51 枚積める
  • プリントが高速
  • インクが大容量

モチロン、レビューの「一年ほどで罫線ガタガタ」といったのは読んでいる。
メインが QSL プリントだからと覚悟を決めた。
Amazon ポイントがあったので実質 \20,000 切って購入できた。

ドライバーがこの時代に 32 ビットだというのだ。
クロの思考ノートのページに従ってうまくインストールできた。

無線 LAN である必要性もないから USB ケーブル接続。
セットアップはテストプリントをスキャナーにかけ、自動でキャリブレーションするというシステムだった。 低廉機ばかりの私にはモヤモヤの中でやっていた。

実は去年の分も未発行があったので、3,800 ほどプリントしなければならない。
QSL の印字位置を調整 (glabels)。 取り敢えず 10 枚プリント。「速っ
600 か 700 くらいプリントした頃、「紙送りトラブル」。それを数回繰り返すと「紙送りローラーをキレイキレイせよ」って。 3,800 終わるまで数回キレイキレイした。

このキレイキレイと給紙トレイへの用紙補充、これらの時間を含めて実質 8 時間くらいだろうか、とにかく速かった。データは 300 枚で区切っていた。
ただ排紙トレイからの取り出しがスムーズでない。 A4 なら補助トレイを引き出すから問題ないが。 それでボール紙で排紙トレイを二つ作って元々の排紙トレイの上に置いた。 ハガキサイズをメインでこの機種を使うのは想定外であろうとは思う。

仕様としては給紙トレイはハガキ 51 枚だが、プリントパックのアート上質 180kg で 56 枚積むことができた。 Epson 機は下段でさえ 40 枚程度だった。
80 枚積めるのも他社含めてあるが、プリンターに \50,000 の気はない。

JARL の 6 ワク

国産でないログソフトを使う一番のネックは QSL プリントであろうか。
CQRLOG のエクスポートする csv を libreOffice Calc に読み込み、

  • via 列設置、IF 関数で via 入力、
  • 6 ワク設置、LEFT, MID 関数で出力
  • 不適切箇所修正、余分な列削除
  • JA はエリア区分せよとのことで JA 別ファイル。
  • ナンバーでソート

をやって、やっとプリントの準備ができる。

しかしこの作業をするのが、寄る年波に勝てずだんだん億劫に・・・
そこで年も考えず、csv なら python (私はフランス語風にピトンと読む)でできないかと考えたが、無論 python の知識があるわけでない。

AI に相談するも六文字とリマークスの位置関係で全く無駄な一日になったことも。
アキラメてログオフしてから考えた。 不自然だが、六文字の列を末尾にすれば、リマークスが非表示だったりを回避できるのではと考え csv を作り変えてみた。結果成功だった。
となれば、列の入れ替えを AI に相談すればいい。

結果は、via が文字分解されたり、リマークスが文字分解されたり。
どうやら入れ替えによっての列指定がマチガッていると気づいた。
ソレを修正してやると期待通りの cxv を得ることができた。

読み込んだ csv 注意

Date,Time,Call,Mode,Freq,RSTs,RSTr,Rmks,Mgr

因みにここでは /P や KH2/ などは考慮していない。 AI にも相談したが不成功に終わった。

import csv

# 入力ファイル名と出力ファイル名
input_file = 'input.csv'
output_file = 'output.csv'

# データを処理して出力ファイルに書き込む関数
def process_csv(input_file, output_file):
    with open(input_file, 'r', newline='', encoding='utf-8') as infile, \
         open(output_file, 'w', newline='', encoding='utf-8') as outfile:
        
        reader = csv.reader(infile)
        writer = csv.writer(outfile)
        
        for row in reader:
            # 行の長さが足りない場合はスキップする
            if len(row) < 10:
                continue

            # H列が空の場合にC列をコピー
            if not row[7]:
                row[7] = row[2]
            else:
                row.insert(9, 'via')  # H列が空でない場合にJ列に"via"を追加

            # I列とJ列の値を入れ替える
            row[8], row[9] = row[9], row[8]

            # H列のデータをK列以降の列に一文字ずつのデータとして書き込む
            h_chars = list(row[7])
            row[10:10+len(h_chars)] = h_chars
            
            # 出力ファイルに書き込む
            writer.writerow(row)

# CSVファイルの処理を実行
process_csv(input_file, output_file)

最初 9 列の csv だったので

Traceback (most recent call last):
  File "/home/NAME/TEST.py", line 33, in <module>
    process_csv(input_file, output_file)
  File "/home/NAME/TEST.py", line 17, in process_csv
    row[8], row[9] = row[9], row[8]
IndexError: list index out of range

と叱られてしまった。どうやらプラス一列は必要のようだ。
それくらいは sed でやっても知れてる。

sed -e "s/\$/,,/"