【Python】LINEにPDFファイルを自動送信する方法|月次レポートや契約書の共有に

【Python】LINEにPDFファイルを自動送信する方法|月次レポートや契約書の共有に Python

業務で作成した月次レポートや契約書を、毎回メールや手動でLINEに送っていませんか?PythonとLINE Notifyを連携すれば、PDFファイルの自動送信が可能になり、ファイル共有を効率化できます。

この記事では、Pythonを使ってLINEにPDFファイルを送信する方法を解説します。

前提:LINE Notifyトークンの取得

  1. LINE Notify にログイン
  2. 「マイページ」から「トークンを発行する」をクリック
  3. トーク名と通知先(個人 or グループ)を選択
  4. 発行されたアクセストークンを控える(必ず保存

PythonスクリプトでPDF送信

import requests

# 取得したLINE Notifyのアクセストークン
TOKEN = "YOUR_LINE_NOTIFY_TOKEN"

# 通知メッセージ
message = "月次レポートを送信します。"

# 送信するPDFファイルのパス
file_path = "monthly_report.pdf"

headers = {
    "Authorization": f"Bearer {TOKEN}"
}

data = {
    "message": message
}

files = {
    "imageFile": ("report.pdf", open(file_path, "rb"), "application/pdf")
}

response = requests.post("https://notify-api.line.me/api/notify", headers=headers, data=data, files=files)

if response.status_code == 200:
    print("送信成功")
else:
    print("エラー発生:", response.status_code, response.text)

注意:LINE Notifyは画像(PNG、JPEG、GIF)には対応していますが、PDFファイルは「画像」として送信されるため、一部環境では表示できない可能性があります。PDFの中身を画像化する方法も後述します。

PDFを画像に変換して送信する方法(代替案)

from pdf2image import convert_from_path
from PIL import Image

# PDF → PNG変換(1ページ目)
images = convert_from_path("monthly_report.pdf")
images[0].save("page1.png", "PNG")

# 変換後の画像を送信
files = {
    "imageFile": open("page1.png", "rb")
}

画像に変換することで、LINEトーク上でそのままプレビュー表示されるようになります。

定期実行への応用

  • PythonでPDFを生成した直後に送信
  • cronやWindowsタスクスケジューラで日次・月次自動送信
  • 送信ログやエラーをファイル出力

まとめ

PythonとLINE Notifyを使えば、PDFファイルやその内容をLINEに自動で送信できます。帳票や報告書の共有をLINEで完結できるようになり、確認漏れの防止やリアルタイムな連携が可能です。

LINE Notifyは導入もシンプルで、通知系の自動化に非常に便利なツールです。PDF送信以外にも、スクレイピング結果やバッチ実行ログの通知など、幅広く活用できます。