import fitz # pymupdf doc = fitz.open("/tmp/doc_page_1.png") # wait, open the pdf doc_pdf = fitz.open(stream=open("/tmp/doc_page_1.png", "rb").read(), filetype="png") # image pdf = fitz.open() # Let's inspect /tmp/syyly_nhi_vo_v1.pdf or export fresh pdf import io, os, json from google.oauth2.credentials import Credentials from googleapiclient.discovery import build from googleapiclient.http import MediaIoBaseDownload token_path = os.path.expanduser("~/.hermes/profiles/reviewer/google_token.json") with open(token_path) as f: creds = Credentials.from_authorized_user_info(json.load(f)) drive_service = build("drive", "v3", credentials=creds) doc_id = "1sjTe7Im51CY2Tl0SNQrm8xmO7bYweMkq44E0WXaxs1I" request = drive_service.files().export_media(fileId=doc_id, mimeType="application/pdf") pdf_data = request.execute() pdf = fitz.open(stream=pdf_data, filetype="pdf") p1 = pdf[0] print("=== Page 1 Rect ===", p1.rect) print("=== Drawings on Page 1 ===") for d in p1.get_drawings(): print("Drawing rect:", d["rect"], "items:", len(d["items"])) print("=== Text Blocks on Page 1 ===") blocks = p1.get_text("blocks") for b in blocks[:15]: print(f"Rect: ({b[0]:.1f}, {b[1]:.1f}, {b[2]:.1f}, {b[3]:.1f}) Text: {repr(b[4].strip())}")