""" 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']}")