import pypdf, sys, os sys.stdout.reconfigure(encoding='utf-8') reader = pypdf.PdfReader('resources/knowledge/original/원가계산/건설공사_표준품셈/2026년_건설공사_표준품셈.pdf') targets = [ ("2-8-7", "철골 안전망"), ("2-8-10", "수직형 추락방망"), ("2-11-5", "비산먼지"), ("2-11-7", "슬러지 제거"), ("4-4-4", "야자섬유매트"), ("5-1-3", "버팀보"), ("5-1-8", "복공판"), ("7-4-2", "앵커 긴결"), ("슬립폼", "설치 및 해체"), ("지수판", "소켓 연결"), ("정착구 설치", "쉬즈관"), ] for sec, kw in targets: found = False for idx, page in enumerate(reader.pages[:300]): # common part is in first 300 pages txt = page.extract_text() if sec in txt or (kw in txt and ("품" in txt or "공" in txt)): print(f"=== Found '{sec}' on PDF page index {idx} ===") # print surrounding lines lines = txt.split('\n') for l_idx, l in enumerate(lines): if sec in l or kw in l: start = max(0, l_idx - 3) end = min(len(lines), l_idx + 15) print("\n".join(lines[start:end])) print("-" * 50) found = True break if found: break