rago1975が自ら環境を構築して執筆するブログ

LuaTexとPython で宛名の差し込み印刷をやっていた。

あけましておめでとうございます。

年賀状については、昨年中に全て出し終わりました。これまでWindowsの年賀状作成ソフト(筆まめなど)を使っていましたが、今回は、GIMP、LuaTex、Python で全てできるようにしました。

今回は、一連の作業のうち、今回は宛名面をLuaTexとPythonで差し込み印刷したという話です。

LuaTexとPythonで差し込み印刷

PythonのスクリプトをGithub(https://github.com/rago1975/atena-sashikomi)に挙げておきます。なお、実行に際してはLuaTex-jaが動く環境と、Pythonのmojimojiパッケージ(https://github.com/studio-ousia/mojimoji)が必要です。

atena-sashikomi.pyを実行(python atena-sashikomi.py)させると、CSV形式の住所録ファイルを読み込み、LuaTexのフォーマットを作成します。Pythonのsubprocessモジュールを使ってLualatexを実行し、PDF形式で出力しています。

  • Document class はLuaTex-ja の縦書きクラス(ltjtarticle)を使用しています。
  • 縦書きのクラスの場合、半角の英数字は横に倒れた形で出てくるので、mojimojiパッケージのモジュールを使って、住所録内の英数字を全て全角に変換しています。