Vision API 可從儲存在 Cloud Storage 的 PDF 和 TIFF 檔案中,偵測任何 Vision API 功能。
您必須使用 files:asyncBatchAnnotate
函式要求 PDF 和 TIFF 中的功能偵測,該函式會執行離線 (非同步) 要求,並使用 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 值區中的檔案。回應 JSON 檔案也會儲存至 Cloud Storage 值區。
指令列
如要執行 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。提出要求的使用者或服務帳戶必須能夠寫入儲存體。檔案名稱會是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
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Go。詳情請參閱 Vision Go API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Java。詳情請參閱 Vision Java API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Node.js。詳情請參閱 Vision Node.js API 參考說明文件。
如要向 Vision 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照 使用用戶端程式庫的 Vision 快速入門中的操作說明設定 Python。詳情請參閱 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 參考文件。