見出し画像

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を調べる。

画像1

url : NotionのデータベースのURL。nameとtagsがあればいい。以下の画像のようなページ。

画像2

# 実行

`make run` or `python3 -m pdf2notion`

PDFのファイル名が日本語だとその部分が切り取られるんだけど、そこはまだ未解決、、、。

この記事が気に入ったらサポートをしてみませんか?