ここではtabula.read_pdfで読み込めるpdfと読み込めないpdfについて比較してみます。
tabula-pyで読み込めるpdf
tabula-pyがpdf上の表(テーブル)をテキスト抽出できる優秀ツールであることは前記事で詳しく紹介しましたね。

【Python】PDFの表テーブル読込ライブラリ(pdf2txt、tabula-py)使い方・使用感
業務上、PDFファイルからデータを抽出するニーズは多くあります。 この作業を効率化するために、Pythonを活用する方法が考えられます。 今回は、特にpdf2txt.pyとtabula-pyという2つのライブラリを利用して、PDFからテキス...

【Python】tabula.read_pdfでDataFrameにどんなデータが取得されるか
tabula-pyは表形式をテキスト化するのに特化した優秀ライブラリでしたね。 では、tabula-pyを使って複数の表が記載されたpdfファイルをDataFrameへ読み込んだ時、一体どんな感じになっているのでしょうか。 ここではVisu...
ですが、「値を抽出できる」といっても、tabula-pyはOCR処理(文字認識)ができるというわけではありません。
tabula-pyで読み込めないpdf
tabula-pyの守備範囲は、あくまでpdf上の「テキストとして認識できるデータ」が対象となります。

PDFの裏側については書くと長くなりますのでここでは深追いしません。
試しに紙をスキャンして生成したpdfをtabulaに読み込ませ、結果をprintしてみましょう。
pdffile1="d:\複数テーブル_scan.pdf"
dfs = tabula.read_pdf(pdffile1, lattice=True , pages = 'all')
print(dfs[0])
実行結果
IndexError: list index out of range
データフレーム:dfsに何も取得できていないため、dfs[0]を出力しようとするとインデックスエラーとなっています。
tabula-pyはOCR処理(文字認識)ができるというわけではなく、あくまで「テキストとして認識できるデータ」から取得していることを知ったうえで使いましょう
Pythonおすすめの勉強方法
Pythonを最も効率的に学べる方法についてはこちらにまとめています。

Python入門におすすめのUdemy学習教材 5選
本記事では、Pythonの入門学習におすすめのUdemy学習教材について紹介します。 はじめに このブログでも業務に役立つPython技術をかいつまんで取りあげていますが、体系立った知識を得るためには、やっぱり書籍か動画の学習教材を使うのが...