私は同様のもの(銀行口座を解析する)に取り組んでおり、同じ問題がありました。今まで私が見つけたこれを解決する唯一の方法は、各ページを個別に解析することです。
唯一の問題は、ファイルが何ページから構成されているかを事前に知る必要があることです。現時点で私はTabulaでこれを直接行う方法を見つけていないので、pyPdfモジュールを使用してページ数を取得することに決めました。
import pyPdf
from tabula import read_pdf
reader = pyPdf.PdfFileReader(open("C:\Users\riley\Desktop\Bank Statements\50340.pdf", mode='rb'))
n = reader.getNumPages()
df = []
for page in [str(i+1) for i in range(n)]:
if page == "1":
df.append(read_pdf(r"C:\Users\riley\Desktop\Bank Statements\50340.pdf", area=(530,12.75,790.5,561), pages=page))
else:
df.append(read_pdf(r"C:\Users\riley\Desktop\Bank Statements\50340.pdf", pages=page))
同時に各個別のページ、またはすべてを読み込むときに、いくつかのknown and open issuesがあることに注意してください。
幸運を祈る!
2017年8月3日EDIT:
pyPDfを経由せずに、PDFのページをカウントする簡単な方法を発見FILE_PATHはもちろん
のあなたのファイルへのパスです
import re
def count_pdf_pages(file_path):
rxcountpages = re.compile(r"/Type\s*/Page([^s]|$)", re.MULTILINE|re.DOTALL)
with open(file_path, "rb") as temp_file:
return len(rxcountpages.findall(temp_file.read()))