52 lines
2.1 KiB
Python
52 lines
2.1 KiB
Python
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}")
|