kintone でデータ印(日付印)をやってみた
本格的な電子認証ではないですが、データ印(日付印)は、会社の文化としてはまだ一定の地位があります。これをなんとかkintoneでできないかやってみました。
プラグインにひと手間加えて。。。
ノベルワークスさんの、「印鑑押印プロセス連携プラグイン」を試用。
すごくよくできたプラグインで、外部クラウドサービス(GitHubとかAWSとか)を利用して、kintoneアプリ間で押印の添付画像をコピペするような仕組みのようです。なるほど!
ただ、日付が変わるデータ印には必要な、コピー元画像の自動変更のような機能はありませんでした(手動での変更は可能)。
じゃあコピー元のアプリの画像を、データ印イメージで毎日更新する仕組みを自分で作ったらいけるんじゃないかな?!と思いつきました。
画像を変更する方法として、折角だからこの前「IoT」で使った「Python」でやってみようと調べたところ、以下サイトがみつかりました。
上記、ほとんどそのまんま、利用させていただきました。
ありがとうございます。
(ありがたかったので、お礼もかねて書籍も購入しました。詳しくは後述)
環境設定
textout_all_hanko.py
from PIL import ImageFont, ImageDraw, Image
import os, sys, glob
# フォントのパスとサイズを指定 --- (*1)
font_path = "ipaexg.ttf"
font_size = 11
text_pos = (12, 30)
text_color = (255, 0, 0)
# 出力パスの指定
# out_path = "./out"
out_path = "C:\cli-kintone\hanko_out"
if not os.path.exists(out_path): os.mkdir(out_path)
# コマンドラインを得る --- (*2)
if len(sys.argv) < 3:
print("textout_all_hanko.py フォルダパス テキスト")
quit()
dir_path = sys.argv[1]
label = sys.argv[2]
# フォントを読み込む --- (*3)
font = ImageFont.truetype(font_path, font_size)
# ファイルの一覧を得る --- (*4)
files = glob.glob(dir_path + "/*.png")
# 連続で画像にテキストを書き込む --- (*5)
for f in files:
print("textout: " + f)
image = Image.open(f)
draw = ImageDraw.Draw(image)
# 白抜き文字を出力 --- (*6)
for i in range(-3, 4):
for j in range(-3, 4):
x = text_pos[0] + i
y = text_pos[1] + j
# draw.text((x, y), label, fill=(255,255,255), font=font)
draw.text(text_pos, label, fill=text_color, font=font)
path = out_path + "/" + os.path.basename(f)
image.save(path)
リンク元のサンプルソースと比べてもらえば、変更のポイントとかの参考になるかもしれません。
kintoneアプリは、アプリストアの「顧客リストアプリ」を使いました。
(単に、cli-kintoneのテストに使ったアプリの流用です。^^;)
kintone環境例
サブドメイン:piyo
アプリID:1234
APIトークン:ABCdefgHijklMnOpqrstuVwxYzAbcdefgHiJkLmN
cli-kintoneの実行環境
印影はWindows標準のペイントでつくりました。
バッチファイルの中身は以下。
kintone_hanko.bat
pause "hanko start"
rem 画像変更
cd C:\Python
textout_all_hanko.py C:\cli-kintone\hanko_in 20.12.25
rem アップロード
cd C:\cli-kintone
cli-kintone.exe --import -a 1234 -d piyo -t ABCdefgHijklMnOpqrstuVwxYzAbcdefgHiJkLmN -e sjis -f update_record_with_attachments.csv -b C:\cli-kintone\hanko_out
pause "hanko end"
ポイントになるのは、以下2行。
textout_all_hanko.py C:\cli-kintone\hanko_in 20.12.25
上記で先ほどの「python」のソースを起動しています。
20.12.25はデータ印の日付。とりあえず手修正での運用です。^^;
C:\cli-kintone\hanko_in
配下には日付なしのデータ印画像があります。
実行後、日付ありデータ印画像が
C:\cli-kintone\hanko_out
に作成されます。
で、それを受けるのが「cli-kintone.exe」になります。
日付ありデータ印の印影を、kintoneの「顧客リストアプリ」にアップロードします!
上記を参考に、cli-kintone.exeには以下のパラメタを与えます。
cli-kintone.exe --import -a 1234 -d piyo -t ABCdefgHijklMnOpqrstuVwxYzAbcdefgHiJkLmN -e sjis -f update_record_with_attachments.csv -b C:\cli-kintone\hanko_out
どのレコードのどのフィールドに添付するかは、-f 以降のCSVファイルが管理してて、中身は。。。
update_record_with_attachments.csv
"$id","会社ロゴ"
"26","hanko.png"
項目1列めにレコード番号、2列めに添付ファイル名
を指定しています。
指定レコードを削除して追加すると、内容は同じでもレコード番号が変わってくるのでうまく動かなくなりますね。^^;
これで準備完了!!
kintoneアプリの実行
「顧客リストアプリ」初期画面は以下。例では、レコード番号26のデータが事前にあることになります。
会社ロゴの所に、印影を埋め込みます。個人の印影なのに「会社ロゴ」ってなってますが、気にしない!^^;
kintone_hanko.bat
を、マウスでダブルクリック!!
C:\cli-kintone>pause "hanko start"
続行するには何かキーを押してください . . .
C:\cli-kintone>rem 画像変更
C:\cli-kintone>cd C:\Python
C:\Python>textout_all_hanko.py C:\cli-kintone\hanko_in 20.12.25
textout: C:\cli-kintone\hanko_in\hanako.png
C:\Python>rem アップロード
C:\Python>cd C:\cli-kintone
C:\cli-kintone>cli-kintone.exe --import -a 1234 -d piyo -t ABCdefgHijklMnOpqrstuVwxYzAbcdefgHiJkLmN -e sjis -f update_record_with_attachments.csv -b C:\cli-kintone\hanko_out
[2020-12-01 01:43:08]: Start from lines: 1 - 2 => SUCCESS
[2020-12-01 01:43:09]: DONE
C:\cli-kintone>pause "hanko end"
続行するには何かキーを押してください . . .
よしっ!正常終了!!
で、アプリを確認すると。。。
おおっ!日付ありのデータ印が添付されてるっ!やったー!!
(^^;
今後の課題とか
あとは、ノベルワークスさんの「印鑑押印プロセス連携プラグイン」で、承認実行時にこの印鑑画像が、添付されるという流れです。^^
実運用までには、自動的に日付を算出したり、社員分の日付なしデータ印イメージをつくって、社員管理アプリかなんかに登録したり、夜間バッチで社員分の日付あり印影を生成するスケジュールを組んだりとか、課題は山盛りですが、とりあえず「カーネル部分」はできたいうことで勘弁してください。^^;
何かの参考になれば幸いです。
PS
今回、Pythonのソースを参考にさせてもらった、クジラ飛行机さんの書籍を購入しました。プログラムの基本から丁寧に書いてあるのでわかりやすいです。マンガだし。^^;
この記事が気に入ったらサポートをしてみませんか?