pythonからpdfのフォームに入力する
pythonからpdfのフォームに入力する(厳密には違う) # pythonでpdfのフォームに値を入力していく機能をつくりました。
そもそもpdfにフォームなんて埋められるんだって知らなかったです。
どうやら読み込み専用フォームとそうでないフォームがあるみたいです。
書き込めるフォームであってもフォントの指定や色付けとかが難しそうだったので、フォームに入力しない形式で実装しました。
なのでどちらにも対応できるような感じになってます。
事前準備 # reportlab $ pip install reportlab PyPDF2 $ pip install pypdf2 コード # #! /usr/bin/python # -*- coding: utf-8 -*- from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from PyPDF2.pdf import PdfFileReader, PdfFileWriter from io import BytesIO title = 'title' # fontを変更 pdfmetrics.registerFont(TTFont('Mplus1p-Light', 'static/font/Mplus1p/Mplus1p-Light.ttf')) template_path = 'template.pdf' # 読み込み reader = PdfFileReader(template_path) existing_page = reader.
crontab -e と /etc/crontab の違い
ふとした拍子にcronのログを見ていたら同じコマンドが実行されていたんですね。
$ less /var/log/cron Feb 6 00:15:01 ip-000-00-00-000 CROND[16356]: (user) CMD (python /home/user/app/manage.py hogehoge) Feb 6 00:15:01 ip-000-00-00-000 CROND[16357]: (user) CMD (user python /home/user/app/manage.py hogehoge) 追記 # 上記のコマンドの
user python /home/user/app/manage.py hogehoge
この部分、おかしいですね〜〜
/etc/crontabの内容を何も考えずにコピーしちゃいました。
/etc/crontabはユーザーを指定して記述するのに対して、crontab -eの場合はユーザーはログインユーザーとなるのでユーザーの記述はいらんのですね。猛省。
おかしいな〜おかしいな〜〜〜〜〜 # こわいな〜こわいな〜〜〜〜。
何て思っていたんですが、そういえばcronの設定を二回したような気がしてきたので確かめてみました。
/etc/crontab # まず初めにcronを設定したときはこのこをいじっていました。
$ sudo vim /etc/crontab ですね。
crontab -e # 何を思ったのかこっちでも設定していたような気がしました。
$ crontab -l で確認することができます。
案の定同じコマンドが同じ時間で実行されるように設定されておりました。
この二つの違いはなんなんでしょうか # こちらがわかりやすいかと思います。
要するに、 /etc/crontabは他のユーザーのcronもまとめて設定できるようなのですね。
たとえば
* * * * * user echo 'fugafuga' * * * * * user2 echo 'hogehoge' のような感じです。