39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
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
|