Vision API 可從儲存在 Cloud Storage 的 PDF 和 TIFF 檔案偵測任何 Vision API 功能。
如要從 PDF 和 TIFF 偵測特徵,必須使用 files:asyncBatchAnnotate
函式提出要求,該函式會執行離線 (非同步) 要求,並使用 operations
資源提供狀態。
PDF/TIFF 要求產生的輸出內容會寫入指定 Cloud Storage 值區中建立的 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
Go
在試用這個範例之前,請先按照Go「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Go API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Java
在試用這個範例之前,請先按照Java「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Java API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Node.js API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
在試用這個範例之前,請先按照Python「使用用戶端程式庫的 Vision 快速入門導覽課程」中的設定說明操作。詳情請參閱 Vision Python API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
gcloud
使用的 gcloud
指令取決於檔案類型。
如要執行 PDF 文字偵測,請使用
gcloud ml vision detect-text-pdf
指令,如下列範例所示:gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
如要執行 TIFF 文字偵測,請使用
gcloud ml vision detect-text-tiff
指令,如下列範例所示:gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
其他語言
C#: 請按照用戶端程式庫頁面上的 C# 設定說明操作, 然後前往 .NET 適用的 Vision 參考說明文件。
PHP: 請按照用戶端程式庫頁面的 PHP 設定說明操作, 然後前往 PHP 適用的 Vision 參考文件。
Ruby: 請按照用戶端程式庫頁面的 Ruby 設定說明操作, 然後前往 Ruby 適用的 Vision 參考說明文件。