"""
Phase 1: 招标文件解析 — PDF 表格提取

封装 pdf_table_to_docx 模块，提取 PDF 中的表格到 DOCX 文件。

用法:
    from phase1_parsing.extract_pdf_tables import extract_tables
    meta = extract_tables("data/招标文件.pdf", "output/tables/")
"""

import os
import json


def extract_tables(pdf_path: str, output_dir: str = "output/phase1_tables") -> dict:
    """
    从 PDF 提取表格，保存为独立 DOCX 文件 + JSON 元数据。

    Args:
        pdf_path: PDF 文件路径
        output_dir: 输出目录

    Returns:
        tables.json 的元数据字典
    """
    from pdf_table_to_docx.extractor import PDFTableExtractor

    os.makedirs(output_dir, exist_ok=True)

    extractor = PDFTableExtractor(pdf_path)
    result_dir = extractor.to_docx_directory(
        output_dir=output_dir,
        page_width_cm=21.0,
        page_height_cm=29.7,
        margin_cm=2.0,
    )

    metadata_file = os.path.join(result_dir or output_dir, "tables.json")
    if os.path.exists(metadata_file):
        with open(metadata_file, "r", encoding="utf-8") as f:
            meta = json.load(f)
        print(f"[Phase1] 表格已提取: {meta.get('total_tables', 0)} 个表格")
        return meta

    print("[Phase1] 未检测到表格")
    return {"total_tables": 0, "tables": []}


if __name__ == "__main__":
    meta = extract_tables("data/松江区机关事务管理局物业管理服务招标文件.pdf")
    for t in meta.get("tables", []):
        print(f"  表{t['id']}: {t['rows']}行{t['cols']}列 页码{t['pages']}")
