Files
pdf/tests/edits/find_failing_pdf.py
T
2026-07-31 10:50:37 +05:30

69 lines
2.7 KiB
Python

"""Locate the real failing PDF containing 'Professional Experiences' / Arial-BoldMT."""
from __future__ import annotations
import sys
from pathlib import Path
sys.path.insert(0, r"C:\Users\Maskan\pdfeng-build\win-local\lib")
sys.path.insert(0, r"c:\Users\Maskan\Desktop\pdf_editor\pdf\gateway")
import pdfengine # type: ignore
CANDS = [
Path(r"C:\Users\Maskan\Downloads\Saqib_Ali_Mir_Resume.pdf"),
Path(r"C:\Users\Maskan\Downloads\Saqib_Ali_Mir_Resume (1)vq.pdf"),
Path(r"C:\Users\Maskan\Downloads\Saqib_Ali_Mir_Resume (1)vq (1).pdf"),
Path(r"C:\Users\Maskan\Downloads\Saqib_Ali_Mir_Resume (1)verfication.pdf"),
Path(r"C:\Users\Maskan\Downloads\DemoPdf.pdf"),
Path(r"C:\Users\Maskan\Downloads\DemoPdf-1-3.pdf"),
Path(r"C:\Users\Maskan\Desktop\docQube\docqube_backend\app\temp_uploads\801c2dcf-afa2-462a-a71d-4b2e2599808f.pdf"),
Path(r"C:\Users\Maskan\Desktop\docQube\docqube_backend\app\temp_uploads\fc716e7e-aa82-4bb3-825a-51140db03c1b.pdf"),
]
raw = Path(r"C:\Users\Maskan\Documents\pdf_html\backend\storage\raw")
if raw.exists():
CANDS.extend(sorted(raw.glob("*.pdf")))
for d in raw.iterdir():
if d.is_dir():
CANDS.extend(sorted(d.glob("*.pdf")))
def main():
hits = []
for p in CANDS:
if not p.exists():
continue
try:
doc = pdfengine.PdfDocument.load_from_file(str(p), "")
except Exception as e:
print(f"ERR load {p}: {e}")
continue
for pi in range(min(doc.page_count, 5)):
page = doc.get_page(pi)
try:
model = page.extract_document_model()
except Exception as e:
print(f"ERR model {p} p{pi}: {e}")
continue
for para in model.paragraphs:
text = " ".join("".join(r.text for r in ln.runs) for ln in para.lines)
if "Professional Experience" in text:
fonts = sorted({
(r.font_name, r.internal_font_id, r.is_embedded, r.type, r.font_size)
for ln in para.lines for r in ln.runs
})
hits.append((str(p), pi, text[:100], fonts))
print("FOUND", p)
print(" page", pi)
print(" text", repr(text[:120]))
print(" fonts", fonts)
for f in doc.get_fonts(pi, pi):
if "Arial-BoldMT_TrueType_32" in (f.internal_font_id or "") or (
"Arial-BoldMT" in (f.font_name or "") and f.is_embedded
):
print("FONT", p, "page", pi, f.font_name, f.internal_font_id, "emb", f.is_embedded)
print("hits", len(hits))
if __name__ == "__main__":
main()