PyPDF2のインストール
PyPDF2を用いる。https://pypi.org/project/PyPDF2/
インストールはいつもの
pip install PyPDF2
で。Documentationはこちら。
Documentation page not found
- Read the Docs
簡単な使い方
まずは使い方から。これはPDFからテキストを抽出している。
from PyPDF2 import PdfReader
reader = PdfReader("example.pdf")
num_of_pages = len(reader.pages)
page = reader.pages[0]
text = page.extact_text()
任意のページで分割
import PyPDF2
f = "example.pdf" #分割するpdfファイル
page_step = 4 #何ページごとに分割するか
#ページ数の把握
reader = PdfReader("example.pdf")
num_of_pages = len(reader.pages)
for page in range(0, num_of_pages, pate_step):
merger = PyPDF2.PdfFileMerger()
start = page
end = start + page_step
merger.append(f, pages = (start, end))
file_name = str(start) + ".pdf"
merger.write(file_name)
merger.close
この方法で分割を行うと、ファイル名が\(0, 4, 8, \cdots\)などになってしまう。望ましいのは、予めリストを用意しておいて、そのリストから順にファイル名を付与していくことだろう。
#csvファイルからIDのリストを読み込みん
d = pd.read_csv("list_file.csv")["ID"]
for page in range(0, num_of_pages, pate_step):
merger = PyPDF2.PdfFileMerger()
start = page
end = start + page_step
i = start//page_step
merger.append(f, pages = (start, end))
file_name = str(d[i]) + ".pdf"
merger.write(file_name)
merger.close
書き出し先を変更したいとき
for page in range(0, num_of_pages, pate_step):
merger = PyPDF2.PdfFileMerger()
start = page
end = start + page_step
i = start//page_step
merger.append(f, pages = (start, end))
file_name = str(d[i]) + ".pdf"
merger.write("/Users/Documents/" + file_name)
merger.close
の様に書き出し先を絶対pathで指定する。
いずれにしろ、pdfファイルはそれなりに時間が掛かる。1200ページのpdfを4ベージごとに分割したら、全部で10分以上かかった。いい方法があれば知りたい\(\cdots\)
関連記事
DataFrame
データフレームの中から条件を満たす列のIDを取得
JSONファイルの読み込みについて
コメント