最近では、PDFやExcelのパーシングも簡単になってきたこともあり、Databricksで作業している際に「このPDFどんな内容だっけ?」となることも増えてきました。考えてみたら、ノートブック上にPDFを表示しようと思ったことも無かった訳で。
結論から言うと、PDFをそのまま表示することはできなかったので画像に変換して表示するアプローチをとっています。
この辺りを参考にさせていただきました。
PyMuPDF
を使うといいらしい。でも、ライセンスには注意とのこと。
%pip install PyMuPDF
dbutils.library.restartPython()
それと、こちらの情報を組み合わせて。
import fitz
import matplotlib.pyplot as plt
from PIL import Image
from io import BytesIO
# Volume上のPDFファイル
filename = "/Volumes/takaakiyayoi_catalog/fsi_smart_claims/volume_claims/medical_statements/0000203025-part-3.pdf"
doc = fitz.open(filename)
page = doc.load_page(0)
pixmap = page.get_pixmap(dpi=300)
img = pixmap.tobytes()
# BytesIOから画像の読み込み
im = Image.open(BytesIO(img))
# 画像の表示
dpi = 100
width, height = im.size
plt.figure(figsize = (width/dpi,height/dpi))
plt.imshow(im, aspect='auto')
これで、ボリュームに格納されているPDFをノートブックに表示することができます。