You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Computer Vision OCR识别PDF报UnsupportedMediaType错误求解决

解决Azure Computer Vision OCR接口处理PDF时的UnsupportedMediaType错误

首先得明确:你用的Computer Vision v2.0的OCR端点/vision/v2.0/ocr本身不支持PDF文件——这个接口只针对单张图像(JPG、PNG、BMP等格式)设计,哪怕你把PDF以application/octet-stream的格式传入,它也无法解析,所以会返回UnsupportedMediaType错误。而你把PDF转成图片后正常,也验证了这一点:图像格式是这个端点支持的类型。

要处理PDF文档的文本提取,你需要切换到Azure Computer Vision的Read API(从v3.0版本开始引入,目前稳定版是v3.2),这个API专门支持多页文档(包括PDF、TIFF等格式)的文本识别。下面是具体的解决步骤:

1. 使用正确的Read API端点

替换原来的v2.0 OCR端点,改用Read API的分析端点:
https://<your-resource-name>.cognitiveservices.azure.com/vision/v3.2/read/analyze

注意:Read API支持两种处理模式:

  • 同步模式:适合单页或小文件(文件大小<20MB,页数<=20),调用后会直接返回结果(如果处理快的话)
  • 异步模式:针对大文件或多页文档,调用后会返回一个Operation-Location响应头,你需要轮询这个地址获取最终识别结果

2. 构造正确的请求

不管用哪种模式,请求的基本结构如下:

  • 请求方法:POST
  • 请求头:
    • Ocp-Apim-Subscription-Key: <你的订阅密钥>
    • Content-Type: application/octet-stream(如果直接传文件二进制)或者application/json(如果传文件URL)
  • 请求体:直接传入PDF文件的二进制数据

举个curl命令的示例(直接传本地PDF文件):

curl -X POST "https://<your-resource>.cognitiveservices.azure.com/vision/v3.2/read/analyze" \
  -H "Ocp-Apim-Subscription-Key: <your-key>" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@your-document.pdf"

3. 处理响应

如果是同步模式,响应会直接包含识别出的文本内容;如果是异步模式,响应的Operation-Location头会包含一个类似https://<your-resource>.cognitiveservices.azure.com/vision/v3.2/read/analyzeResults/<operation-id>的地址,你需要用GET请求这个地址,直到返回的status字段变为succeeded,此时就能拿到完整的文本提取结果。

额外说明

  • 如果你坚持要用v2.0的接口,那只能先把PDF的每一页转成图像(比如用iTextSharp、Ghostscript等工具),再逐页调用OCR接口,这也是你之前测试成功的方式,但显然不如直接用Read API高效。
  • Read API不仅支持PDF,还能保留文档的排版结构(比如段落、列表、表格),这是v2.0 OCR不具备的能力。

内容的提问来源于stack exchange,提问作者Martin Gudel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:58:55