#!/usr/bin/env python3 """将 PPT 解析为 JSON 中间格式 用法: python parse_ppt.py [output.json] 如果不指定 output.json,则输出到 stdout """ import sys import json import argparse from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) from ppt_station.parsers.ppt_parser import PPTParser def main(): parser = argparse.ArgumentParser(description="PPT → JSON 解析") parser.add_argument("input", help="输入 .pptx 文件路径") parser.add_argument("output", nargs="?", help="输出 .json 文件路径(可选,默认输出到 stdout)") args = parser.parse_args() input_path = Path(args.input) if not input_path.exists(): print(f"错误: 文件不存在: {input_path}", file=sys.stderr) sys.exit(1) # 重定向 print 到 stderr old_stdout = sys.stdout sys.stdout = sys.stderr ppt_parser = PPTParser(input_path) if args.output: output_path = Path(args.output) output_path.parent.mkdir(parents=True, exist_ok=True) ppt_parser.save_to_json(output_path) sys.stdout = old_stdout print(json.dumps({"status": "ok", "output": str(output_path)})) else: result = ppt_parser.parse() sys.stdout = old_stdout json.dump(result, sys.stdout, ensure_ascii=False, indent=2) print() if __name__ == "__main__": main()