Vision API 可偵測儲存在 Cloud Storage 的 PDF 和 TIFF 檔案中的任何 Vision API 功能。
如要從 PDF 和 TIFF 偵測特徵,必須使用 files:asyncBatchAnnotate 函式提出要求,該函式會執行離線 (非同步) 要求,並使用 operations 資源提供狀態。
PDF/TIFF 要求產生的輸出內容會寫入指定 Cloud Storage bucket 中建立的 JSON 檔案。
限制
Vision API 最多可接受 2000 頁的 PDF/TIFF 檔案。如果檔案過大,系統會傳回錯誤。
驗證
files:asyncBatchAnnotate 要求不支援 API 金鑰。如需透過服務帳戶進行驗證的說明,請參閱「使用服務帳戶」。
用於驗證的帳戶必須有權存取您指定的輸出 Cloud Storage 值區 (roles/editor 或 roles/storage.objectCreator 以上)。
您可以使用 API 金鑰查詢作業狀態;如需操作說明,請參閱「使用 API 金鑰」一節。
特徵偵測要求
目前 PDF/TIFF 文件偵測功能僅適用於儲存在 Cloud Storage bucket 中的檔案。回應 JSON 檔案也會儲存到 Cloud Storage bucket。
指令列
如要執行 PDF/TIFF 文件文字偵測,請發出 POST 要求並提供適當的要求主體:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://vision.googleapis.com/v1/files:asyncBatchAnnotate -d "{ 'requests':[ { 'inputConfig': { 'gcsSource': { 'uri': 'gs://your-source-bucket-name/folder/multi-page-file.pdf' }, 'mimeType': 'application/pdf' }, 'features': [ { 'type': 'DOCUMENT_TEXT_DETECTION' } ], 'outputConfig': { 'gcsDestination': { 'uri': 'gs://your-bucket-name/folder/' }, 'batchSize': 1 } } ] }"
其中:
inputConfig- 取代其他 Vision API 要求中使用的image欄位。其中包含兩個子欄位:gcsSource.uri- PDF 或 TIFF 檔案的 Cloud Storage URI (要求的使用者或服務帳戶可存取)mimeType- 接受的檔案類型:application/pdf或image/tiff。
outputConfig- 指定輸出詳細資料。其中包含兩個子欄位:gcsDestination.uri:有效的 Cloud Storage URI。使用者或服務帳戶必須可寫入該 bucket,才能提出要求。檔案名稱為output-x-to-y,其中x和y代表該輸出檔案中包含的 PDF/TIFF 頁碼。如果檔案存在,系統會覆寫其內容。batchSize- 指定每個輸出 JSON 檔案應包含多少頁的輸出內容。
回覆:
成功的 asyncBatchAnnotate 要求會傳回含有單一名稱欄位的回應:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
這個名稱代表一項長期執行的作業,並具有相關聯的 ID (例如 1efec2285bd442df),您可以使用 v1.operations API 查詢這項作業。
如要擷取 Vision 註解回應,請將 GET 要求傳送至 v1.operations 端點,並在網址中傳遞作業 ID。
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/operations/1efec2285bd442df
如果作業正在進行中:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
作業完成後,state 會顯示為 DONE,結果會寫入您指定的 Cloud Storage 檔案:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
輸出檔案中的 JSON 類似於圖片的文件文字偵測要求,但會額外顯示 context 欄位,指出指定 PDF 或 TIFF 的位置,以及檔案中的頁數:
output-1-to-1.json