PDFを画像にしてNotionへアップロードするプログラム
# できたもの
2021/05/14現在、Notionの公式APIができたため この記事の内容は非推奨です。
一応GitHubにあげてみたものの、自分のPC1台でしか試していない(WSL Ubuntu)ので、ほぼ自分用だけど、パスの処理をいじって必要なツール入れればWindows環境とかでも動く。
誰か(未来の自分)の参考になればなぁと思って書いてみた。
# 目的など
Notionを使ってるときに、PDFを画像として取り込みたくなった。このPDFってのは、ただ参考に見るだけのやつ。
具体的に言えば、
・授業で配布されたPDFやGoodnotesで書き終わったものを画像としてNotionに保存する
・それらの資料をNotionのタグ管理する
ぼくの大学のGoogleアカウントではGoogle Driveを無制限で使える。だからGoogle DriveにPDFをバックアップしている。
それでも画像としてNotionに保存しておくのは、いくつか理由がある。
・画像であれば、Notionの折りたたみ機能で重要な所のみを表示し、そうでないところは隠せる
・タグやカンバンで管理できる
・PDF以外の配布物や制作物をノートの中にアップロードできる
・NotionのPDFの埋め込み表示が好きではない
いちいちGUIで作業するのが面倒なので、Notionの非公式のAPIを使って、PDFを画像としてアップロードするプログラムをPythonで書いた。
# 流れ
以下の記事を参考に、プロジェクトっぽいものを作った。
pdf2imageを使用してPDFを画像へ変換。
Notionの非公式のAPIを使って、画像とPDFをNotionへアップロード。
# installationなるもの
git clone https://github.com/eetann/pdf2notion
cd pdf2notion
make init
cp ./pdf2notion/pdf2notion.json ~/pdf2notion.json
このmake initは、「poppler」の導入やpipでの「notion」や「pdf2image」の導入をしている。
jsonファイルは、「pdf2notion.json」という名前でホームディレクトリに置く。
# 設定
jsonファイルに、PDFが入っているディレクトリやタグの設定、token_v2やURLの指定をする。以下は例。
{
"pdf_dir" : [
{"dir": "/mnt/d/lessons/2020/security2", "tags" : ["2020", "security2"]},
{"dir": "/mnt/d/lessons/2019/security1", "tags" : ["2020", "security1"]},
{"dir": "/mnt/d/lessons/2019/info_theory", "tags" : ["2019", "info_theory"]}
],
"token_v2" : "your token_v2",
"url" : "your table url"
}
pdf_dir : PDFが入っているディレクトリに関する辞書
dir : PDFが入っているディレクトリのパス
tags : タグの配列。ただし、urlで指定したNotionのデータベースにそのタグが存在していないとダメ。
token_v2 : F12キーを押して「Application」>「Stroage」>「Cookies」でnotionから、token_v2のValueを調べる。
url : NotionのデータベースのURL。nameとtagsがあればいい。以下の画像のようなページ。
# 実行
`make run` or `python3 -m pdf2notion`
PDFのファイル名が日本語だとその部分が切り取られるんだけど、そこはまだ未解決、、、。
この記事が気に入ったらサポートをしてみませんか?