import glob, re, os, sys, fitz sys.stdout.reconfigure(encoding='utf-8') pdf_path = 'resources/knowledge/original/원가계산/건설공사_표준품셈/2026년_건설공사_표준품셈.pdf' doc = fitz.open(pdf_path) # Ditot / remarks targets target_sections = [ ('제4장_궤도공사.md', '4-5-2', 205), ('제7장_항만공사.md', '7-1-2', 29), ('제7장_항만공사.md', '7-1-4', 86), ('제8장_지반조사.md', '8-4-2', 271), ('제9장_측량.md', '9-3-1', 703), ('제9장_측량.md', '9-5-4', 2701), ('제13장_플랜트설비공사.md', '13-4-3', 1544), ('제13장_플랜트설비공사.md', '13-5-1', 1703), ('제13장_플랜트설비공사.md', '13-5-2', 1734), ('제13장_플랜트설비공사.md', '13-7-14', 3012), ('제13장_플랜트설비공사.md', '13-7-16', 3040), ('제13장_플랜트설비공사.md', '13-7-17', 3053), ('제13장_플랜트설비공사.md', '13-7-18', 3067), ('제13장_플랜트설비공사.md', '13-7-19', 3079), ('제13장_플랜트설비공사.md', '13-7-20', 3096), ('제13장_플랜트설비공사.md', '13-7-21', 3110), ('제13장_플랜트설비공사.md', '13-10-2', 3513), ('제13장_플랜트설비공사.md', '13-10-4', 3586) ] print("=== Checking Ditot Sections in PDF ===") for fname, sec, line in target_sections: # Find page in PDF found_pages = [] for p_num in range(len(doc)): text = doc[p_num].get_text() if sec in text: found_pages.append(p_num) print(f"\n[{fname}] Section {sec} (md line {line}) -> Found in PDF page(s): {[p+1 for p in found_pages]}") for p in found_pages[:2]: page = doc[p] tabs = page.find_tables() for t_idx, tab in enumerate(tabs): df = tab.extract() # print first 3 and last 2 rows print(f" --- Table {t_idx} on Page {p+1} (rows: {len(df)}) ---") for r in df[:5]: print(f" {r}") if len(df) > 5: print(" ...") for r in df[-2:]: print(f" {r}")