LoginSignup
2
5

More than 3 years have passed since last update.

PythonでPDFにされた表をCSVに戻したい

Posted at

表のデータベースがそのまま欲しかったのに

PDFという形式は人にデータを渡すときや、報告書などに他の資料とまとめて配布するには便利な形式ですが、FIXされてしまっているのでデータの再利用性という意味ではやっかいなことが多々あります。私自身も報告書に何千行という表をA4フォーマットで落とし込んで提出したのはいいが、後日それを利用したいタイミングで元データがなく、PDFから取り出さなければならない事態になったためこちらを書きました。

作り方

下のコードを書いてください。また別途tabulaというJavaのライブラリをインストールしておく必要があります。Pyhonのモジュールはあくまでもそのラッパです。

import tabula
import PyPDF2
import pandas as pd

FILE_PATH = "./test.pdf"

with open(FILE_PATH, mode='rb') as f:
    pages = PyPDF2.PdfFileReader(f).getNumPages()

for i in range(pages+1):
    tmp = tabula.read_pdf(FILE_PATH, pages = i, encoding = "utf-8_sig", spreadsheet=True)
    df = pd.concat([df, tmp], ignore_index=True)

df = tabula.read_pdf(FILE_PATH, lattice=True, pages = '1' )

df[0].to_csv("./test.csv", encoding="shift_jis")

使い方

上の.pyファイルを実行するだけです。
よいPDFライフを。

2
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5