日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Java SDK使用指南

本文介紹如何使用阿里云Java語言SDK開發(fā)包,調用文檔智能解析的SubmitDocStructureJob接口(本地文件上傳的異步提交服務接口)、SubmitDocStructureJob接口(URL上傳的異步提交服務接口)和GetDocStructureResult接口(解析結果查詢服務接口),從文檔中提取出層級結構、文本內容、KV字段、樣式信息等。

查看OpenAPI文檔

在調用OpenAPI前,建議您先閱讀對應接口文檔,了解、學習調用該接口所需要的參數及權限等。更多信息,請參見API概覽

準備工作

在使用Java語言SDK方式調用OpenAPI之前,請您完成如下準備工作。

準備Java SDK環(huán)境

  1. 在使用Java SDK前,您需要配置好Java SDK環(huán)境,Java版本要求Java 8及以上。

  2. 在Maven項目的pom.xml文件中,添加阿里云sdk核心庫tea-openapi、文檔智能sdk docmind_api20220711依賴,如下所示:

    <dependencies>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>tea-openapi</artifactId>
            <version>0.2.5</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>docmind_api20220711</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.68.noneautotype</version>
            </dependency>
    </dependencies> 

配置身份認證

  1. 創(chuàng)建AccessKey。詳細內容,請參見創(chuàng)建AccessKey

  2. 創(chuàng)建RAM用戶:您可以創(chuàng)建RAM用戶并為其授權,實現不同RAM用戶擁有不同資源訪問權限的目的。當您的企業(yè)存在多用戶協同訪問資源的場景時,使用RAM可以按需為用戶分配最小權限,避免多用戶共享阿里云賬號(主賬號)密碼或訪問密鑰,從而降低企業(yè)的安全風險。阿里云基于最佳實踐,提供了常見場景的快速配置方式,且預置了對應RAM用戶的權限策略,方便您快速創(chuàng)建RAM用戶并授權。同時,您也可以根據自己的實際業(yè)務需求,采用手動配置的方式,手動創(chuàng)建RAM用戶并授權。詳細內容,請參見創(chuàng)建RAM用戶并授權

    重要
    • 阿里云賬號(主賬號)默認擁有當前賬號下所有云資源的Administrator權限,且無法修改。阿里云賬號(主賬號)的AccessKey泄露會威脅該賬號下所有資源的安全。為保證賬號安全,強烈建議您不要給阿里云賬號(主賬號)創(chuàng)建AccessKey,建議您創(chuàng)建專用于API訪問的RAM用戶并創(chuàng)建對應的AccessKey,完成最小化授權后,通過編程的方式訪問阿里云資源。

    • 不要將AccessKey ID和AccessKey Secret保存到工程代碼里,避免AccessKey泄露。更多關于憑據的安全使用建議,請參見憑據的安全使用方案

  3. 添加阿里云SDK Credentials依賴。具體代碼如下:

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>credentials-java</artifactId>
        <version>0.2.11</version>
    </dependency>
  4. 配置身份認證:本文以配置文件的方式為例。詳細內容,請參見管理訪問憑據

調用OpenAPI

文檔智能解析接口為異步任務接口,需要先調用文檔智能解析異步提交服務SubmitDocStructureJobAdvance或SubmitDocStructureJob接口進行異步任務提交,然后調用文檔智能解析結果查詢服務GetDocStructureResult接口進行結果輪詢。

說明
  • 建議每10秒輪詢一次,最多輪詢120分鐘,如果120分鐘還未查詢到處理完成結果,則視為處理超時。

  • 當異步任務處理提交后,用戶可以在處理結束后的24小時之內查詢處理結果,超過24小時后將無法查詢到處理結果。

  • 圖片轉Word、圖片轉Excel、圖片轉PDF接口不支持文件上傳方式。

調用接口提交文檔處理任務

異步提交服務支持上傳本地文件和url文件兩種方式:

  • 上傳本地文件的異步提交服務接口為:SubmitDocStructureJobAdvance接口。

  • 上傳url文件的異步提交服務接口為:SubmitDocStructureJob接口。

若您需要識別的文件為大文件,耗時較長,可對config對象設置以下屬性。

// 建立連接超時時間
config.connectTimeout = 60000;
// 讀取資源超時時間
config.readTimeout = 60000;

使用本地文檔提交異步任務

如下代碼所示為調用SubmitDocStructureJobAdvance接口通過本地文件上傳方式提交異步任務示例。

import com.aliyun.docmind_api20220711.models.*;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.docmind_api20220711.Client;
import com.aliyun.teautil.models.RuntimeOptions;
import java.io.File;
import java.io.FileInputStream;

public static void main(String[] args) throws Exception {
        submit();
    }
public static void submit() throws Exception {
    // 調用接口時,程序直接訪問憑證,讀取您的訪問密鑰(即AccessKey)并自動完成鑒權。
    // 運行本示例前,請先完成步驟二:配置身份認證。
    // 本示例使用默認配置文件方式,通過配置Credentials文件創(chuàng)建默認的訪問憑證。
    // 使用默認憑證初始化Credentials Client。
    com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
    Config config = new Config()
        // 通過Credentials獲取配置中的AccessKey ID。
        .setAccessKeyId(credentialClient.getAccessKeyId())
        // 通過Credentials獲取配置中的AccessKey Secret。
        .setAccessKeySecret(credentialClient.getAccessKeySecret());
    // 訪問的域名,支持IPv4和IPv6兩種方式,IPv6請使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com。
    config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
    Client client = new Client(config);
    // 創(chuàng)建RuntimeObject實例并設置運行參數。
    RuntimeOptions runtime = new RuntimeOptions();
    // 替換成具體異步任務提交類API接口的入參和方法,示例方法是文檔智能解析。
    SubmitDocStructureJobAdvanceRequest advanceRequest = new SubmitDocStructureJobAdvanceRequest();
    File file = new File("D:\\example.pdf");
    advanceRequest.fileUrlObject = new FileInputStream(file);
    advanceRequest.fileName = "example.pdf";
    // 4 發(fā)起請求并處理應答或異常。
    SubmitDocStructureJobResponse response = client.submitDocStructureJobAdvance(advanceRequest, runtime);
    System.out.println(JSON.toJSON(response.getBody()));
}

返回結果

{
  "RequestId": "4FF7D611-782B-1557-AF71-6541E10A****",
  "Data": {
    "Id": "docmind-20220902-824b****"
  }
}

傳入文檔URL提交異步任務

您傳入的文檔URL必須為公網可訪問下載的URL地址,無跨域限制,URL不帶特殊轉義字符。以下代碼示例表示調用SubmitDocStructureJob接口通過傳入文檔URL方式調用異步任務提交類API。

import com.aliyun.docmind_api20220711.models.*;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.docmind_api20220711.Client;

public static void main(String[] args) throws Exception {
        submit();
    }
public static void submit() throws Exception {
    // 調用接口時,程序直接訪問憑證,讀取您的訪問密鑰(即AccessKey)并自動完成鑒權。
    // 運行本示例前,請先完成步驟二:配置身份認證。
    // 本示例使用默認配置文件方式,通過配置Credentials文件創(chuàng)建默認的訪問憑證。
    // 使用默認憑證初始化Credentials Client。
    com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
    Config config = new Config()
        // 通過Credentials獲取配置中的AccessKey ID。
        .setAccessKeyId(credentialClient.getAccessKeyId())
        // 通過Credentials獲取配置中的AccessKey Secret。
        .setAccessKeySecret(credentialClient.getAccessKeySecret());
    // 訪問的域名,支持IPv4和IPv6兩種方式,IPv6請使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com。
    config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
    Client client = new Client(config);
    // 替換成具體異步任務提交類API接口的入參和方法,示例方法是文檔智能解析。
    SubmitDocStructureJobRequest request = new SubmitDocStructureJobRequest();
    request.fileName = "example.pdf";
    request.fileUrl = "https://example.com/example.pdf";
    SubmitDocStructureJobResponse response = client.submitDocStructureJob(request);
    System.out.println(JSON.toJSON(response.getBody()));
}

返回結果

{
  "RequestId": "4FF7D611-782B-1557-AF71-6541E10A****",
  "Data": {
    "Id": "docmind-20220902-824b****"
  }
}

調用結果查詢類API

以調用文檔層級結構查詢服務GetDocStructureResultRequest接口為例,查詢結果有處理中、處理成功、處理失敗三種情況。如下代碼示例表示調用結果查詢類API:

import com.aliyun.docmind_api20220711.models.*;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.docmind_api20220711.Client;

public static void main(String[] args) throws Exception {
        submit();
    }
public static void submit() throws Exception {
    // 調用接口時,程序直接訪問憑證,讀取您的訪問密鑰(即AccessKey)并自動完成鑒權。
    // 運行本示例前,請先完成步驟二:配置身份認證。
    // 本示例使用默認配置文件方式,通過配置Credentials文件創(chuàng)建默認的訪問憑證。
    // 使用默認憑證初始化Credentials Client。
    com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
    Config config = new Config()
        // 通過Credentials獲取配置中的AccessKey ID。
        .setAccessKeyId(credentialClient.getAccessKeyId())
        // 通過Credentials獲取配置中的AccessKey Secret。
        .setAccessKeySecret(credentialClient.getAccessKeySecret());
    // 訪問的域名,支持IPv4和IPv6兩種方式,IPv6請使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com。
    config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
    Client client = new Client(config);
    GetDocStructureResultRequest resultRequest  = new GetDocStructureResultRequest();
    resultRequest.id = "docmind-20220902-824b****";
    // 替換成具體結果查詢類API接口,示例方法是文檔智能解析。
    GetDocStructureResultResponse response = client.getDocStructureResult(resultRequest);
   System.out.println(JSON.toJSON(response.getBody()));
}

返回結果

返回結果分為處理中、處理成功、處理失敗三種情況。

  • 處理中的返回結果如下所示,Completed返回值為false,表示任務沒有處理結束,仍在處理中。這種情況需要繼續(xù)輪詢,直到Completed返回值為true或者超過輪詢最大時間。

    {
      "RequestId": "2AABD2C2-D24F-12F7-875D-683A27C3****",
      "Completed": false,
      "Code": "DocProcessing",
      "Message": "Document processing",
      "HostId": "ocr-api.cn-hangzhou.aliyuncs.com",
      "Recommend": "https://next.api.aliyun.com/troubleshoot?q=DocProcessing&product=docmind-api"
    }
  • 處理成功的返回結果如下所示,Completed返回值為true,表示任務處理結束,Status返回值為Success,表示處理成功。具體的處理結果在Data節(jié)點中。

    {
      "Status": "Success",
      "RequestId": "73134E1A-E281-1B2C-A105-D0ECFE2DFail",
      "Completed": true,
    	"Data": {
    		"styles": [{
    				"styleId": 0,
    				"underline": false,
    				"deleteLine": false,
    				"bold": true,
    				"italic": false,
    				"fontSize": 15,
    				"fontName": "黑體",
    				"color": "000000",
    				"charScale": 0.95
    			},
    			{
    				"styleId": 1,
    				"underline": false,
    				"deleteLine": false,
    				"bold": false,
    				"italic": false,
    				"fontSize": 12,
    				"fontName": "微軟雅黑",
    				"color": "000000",
    				"charScale": 1
    			}
    		],
    		"layouts": [{
    			"text": "測試標題",
    			"index": 0,
    			"uniqueId": "xxxx9816e77caea338df554b80ab95c7",
    			"alignment": "center",
    			"pageNum": [
    				0
    			],
    			"pos": [{
    					"x": 405,
    					"y": 192
    				},
    				{
    					"x": 860,
    					"y": 191
    				},
    				{
    					"x": 860,
    					"y": 236
    				},
    				{
    					"x": 406,
    					"y": 237
    				}
    			],
    			"type": "title",
          "subType":"doc_title"
    		}, {
    			"text": "本段為測試內容",
    			"index": 1,
    			"uniqueId": "xxxx8606c213c01c12d70f98dcfb2525",
    			"alignment": "left",
    			"pageNum": [
    				0
    			],
    			"pos": [{
    					"x": 187,
    					"y": 311
    				},
    				{
    					"x": 1075,
    					"y": 311
    				},
    				{
    					"x": 1076,
    					"y": 373
    				},
    				{
    					"x": 187,
    					"y": 373
    				}
    			],
    			"type": "text",
          "subType":"para",
    			"lineHeight": 7,
    			"firstLinesChars": 30,
    			"blocks": [{
    					"text": "本段",
    					"pos": null,
    					"styleId": 0
    				},
    				{
    					"text": "為測試內容",
    					"pos": null,
    					"styleId": 1
    				}
    			]
    		}],
    		"logics": {
    			"docTree": [{
    				"uniqueId": "xxxx9816e77caea338df554b80ab95c7",
    				"level": 0,
    				"link": {
    					"下級": [
    
    					],
    					"包含": [
    
    					]
    				},
    				"backlink": {
    					"上級": [
    						"ROOT"
    					]
    				}
    			}],
    			"paragraphKVs": null,
    			"tableKVs": null
    		},
    		"docInfo": {
    			"docType": "pdf",
    			"orignalDocName": "1.pdf",
    			"pages": [{
    				"imageType": "JPEG",
    				"imageUrl": "http://test.moshi.aliyuncs.com/docMind/image/xxxx3cccbfec45b48d3a8081c9c9659e/0",
    				"angle": null,
    				"imageWidth": 1273,
    				"imageHeight": 1801,
    				"pageIdCurDoc": 1,
    				"pageIdAllDocs": 1
    			}]
    		}
    	}
    }
  • 處理失敗的返回結果如下所示,處理失敗Completed返回值為true,表示任務處理結束,Status返回值為Fail,表示處理失敗,同時會返回失敗Code和詳細原因Message。訪問錯誤碼可以查看錯誤碼詳細介紹。

    {
      "RequestId": "A8EF3A36-1380-1116-A39E-B377BE27****",
      "Completed": true,
      "Status": "Fail",
      "Code": "UrlNotLegal",
      "Message": "Failed to process the document.  The document url you provided is not legal.",
      "HostId": "docmind-api.cn-hangzhou.aliyuncs.com",
      "Recommend": "https://next.api.aliyun.com/troubleshoot?q=IDP.UrlNotLegal&product=docmind-api"
    }