PDF格式身份证处理流程图 ===================================== ┌─────────────────────────────────────────────────────────────────┐ │ 身份证文件输入 │ │ (URL或本地路径,可能是PDF或图片) │ └────────────────────────┬────────────────────────────────────────┘ │ ▼ ┌──────────────────────┐ │ 检测文件格式 │ │ (isPdfFile) │ └──────────┬───────────┘ │ ┌───────────────┴───────────────┐ │ │ ▼ ▼ ┌─────────┐ ┌─────────┐ │ 是PDF? │ │ 是图片? │ └────┬────┘ └────┬────┘ │ 是 │ 是 ▼ ▼ ┌──────────────────┐ ┌──────────────────┐ │ PDF处理流程 │ │ 图片处理流程 │ └──────────────────┘ └──────────────────┘ │ │ ▼ │ ┌──────────────────┐ │ │ 1. 下载到本地 │ │ │ (如果是URL) │ │ └────────┬─────────┘ │ │ │ ▼ │ ┌──────────────────┐ │ │ 2. PDF转JPG │ │ │ - DPI: 300 │ │ │ - 质量: 90 │ │ │ - 只转第1页 │ │ └────────┬─────────┘ │ │ │ ▼ │ ┌──────────────────┐ │ │ 3. 读取图片数据 │ │ └────────┬─────────┘ │ │ │ ▼ │ ┌──────────────────┐ │ │ 4. Base64编码 │ │ └────────┬─────────┘ │ │ │ ▼ │ ┌──────────────────┐ │ │ 5. 构建OCR请求 │ │ │ 参数: │ │ │ ImageBase64 │ │ └────────┬─────────┘ │ │ │ └───────────────┬───────────────┘ │ ▼ ┌──────────────────────┐ │ 调用腾讯云OCR API │ │ (IDCardOCR) │ └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ 解析OCR响应 │ │ - 身份证信息 │ │ - 头像图片 │ │ - 裁剪身份证 │ └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ 清理临时文件 │ │ - 下载的PDF │ │ - 转换的图片 │ └──────────┬───────────┘ │ ▼ ┌──────────────────────┐ │ 返回识别结果 │ │ - success: true │ │ - portrait_path │ │ - cropped_card_path │ │ - id_card_info │ └──────────────────────┘ 关键决策点说明 ================ 1. 文件格式检测 - 检查文件扩展名是否为.pdf - 支持URL和本地路径 2. OCR参数选择 ┌─────────────────────────────────────────┐ │ 文件类型 │ OCR参数 │ 原因 │ ├───────────┼──────────┼────────────────┤ │ PDF │ ImageBase64 │ 临时文件,更可靠 │ │ 图片 │ ImageUrl │ 直接访问,更高效 │ └─────────────────────────────────────────┘ 3. 临时文件管理 - 正常流程:OCR完成后立即清理 - 异常流程:catch块中清理 - 确保不留垃圾文件 4. 错误处理 - PDF下载失败 → 返回错误 - PDF转换失败 → 返回错误 - OCR识别失败 → 返回错误 - 所有情况都清理临时文件 性能对比 ========= 普通图片处理: 下载(如需) → OCR识别 耗时: ~1-2秒 PDF文件处理: 下载(如需) → PDF转JPG → Base64编码 → OCR识别 → 清理 耗时: ~2-4秒 额外开销: ~1-2秒 (PDF转换) 兼容性说明 =========== ✓ 向后兼容 - 现有图片格式身份证处理不受影响 - 无需修改调用代码 - 自动检测并选择合适的处理方式 ✓ 系统要求 - Ghostscript (PDF转换) - GD扩展 (图片处理) - 腾讯云OCR SDK ✓ 文件格式支持 - 图片: JPG, PNG, BMP - 文档: PDF (新增)