Open6

公文書作成の自動化を検討する

kiaikiai

端的に言えば、

  1. MS Word / Excel が担っていることを TeX にやらせたい
  2. そのUI/UXを Overleaf に任せたい
  3. その裏でテンプレートエンジンとして動く何らかの設計をどうやって行くか考えたい

というのがこの Scrap です、なにとぞ

kiaikiai

MS Word / Excel が担っていることを TeX にやらせたい

word / Excel を Python から読み込んで書き出すアプローチも考えたけど、直感的になんかイマイチ筋が悪いよなぁと感じていた

で、予想通りそのように自動化できる仕組みもあったんだけど、

  1. template の扱い
  2. ロジックとビューの分離
  3. 共同編集
  4. その他の利便性

等々を考えて、ゆくゆく無理が生じそうだな~と思ったので

  • レイアウト(組版処理)は TeX (ないしその派生物)
  • templating は python(で十分のはず、だけど枯れたやつにした方がいいのかな)

という方針でいったん Fix

kiaikiai

UI/UXを Overleaf に任せたい

公務員全員に記法を理解して Overleaf 使えとは言わない、言えない

が、個々人の環境設定まで面倒見て組織ルールに合わせろってのは土台無理があるので、内部ネットワークがあってブラウザが開ければそこで WYSIWIG っぽくエディタが用意できていると嬉しい

ライセンス的な問題が生じるかもしれないことは承知の上で、まず第一の選択肢として考えられるのは Overleaf であろう(こういうニッチのデファクトスタンダードなため)
どうにか稟議回して上司の機嫌を取り、内部ネットワーク上にサーバを立てれば、そこがまず最初の足がかりになるはず

これだけだと Overleaf を使う旨味がないのだが、ここでは「テンプレート」を「共同編集」できるというのが差別化であり、最大の利点であり、コペルニクス的転回となる
(なんだったら行指向のヴァージョン管理ができるようにのだが、そこはまぁおいといて)

kiaikiai

全然忘れてたけど、ユーザの権限管理とかアカウンティングとかそっちの管理系の問題が生じてくる気がする

ハナから扱わない人間には触らせないホワイトリスト的な運用がいいのか、都合が悪い人物だけ先に禁止するブラックリスト方式がいいのか
というかそもそもログイン管理は組織のものを流用できるのか、等々……

このあたりをうまく設計できれば、お硬い上司も説得しやすくなるかもしれない、要検討

kiaikiai

テンプレートエンジンとして動く何らかの設計

overleaf で作成したテンプレートと、そこに inject したい変数とその値の一覧ファイル(csv, xlsx, etc.) をなんらかのトリガーでもって処理して、pdf なり最終成果物として出力したい

言語選定として、書きやすいとかライブラリ豊富とかで Python を選びたい気持ちと、将来的に負債になってほしくないから枯れた技術を採用すべきという気持ち、心が2つある~~
そこまでデカくならない・しないと心に決めて Python にするか、保守性とか管理を諦めてC++とかそっちにするか、悩みは尽きない

単にファイル読み込んで文字列置換でしかないわけで、そういう簡易な仕組みを追うだけだからなんでもいいでしょという話にはなりそうだ


なんらかのトリガー について、多くの役所は AD 採用で動いているだろうから、規定フォルダの内容変更を検知したら処理が走るようにすればいいと思う
あるいは、ADへの権限周りで対策が重くて困るとなったら、面倒だが手作業でファイルのアップロードとダウンロードをやるという感じから始めてもいい
一つのテンプレと複数のデータ一覧をいれたら、完成済みの複数データが zip で帰って来るとなれば、これまでよりはずっと楽ができそうだ

kiaikiai

既存の文書は再利用したい

既存の財物をそのまま投げ捨てるのは流石にな~と思って調べていたら、docx2tex というプロジェクトがあるらしい

ローカルで動くし、これを食わせてたたき台とすれば、今まで利用してきた word 文書も少なからず流用できる可能性があるかも? ← 要検証