ステップ1: 画像をExcelに変換するための認証
Original Post: Convert Image to Excel with OCR Library
コンソールから取得できる次のコードの publicKey フィールドと secretKey フィールドを置き換える必要があります。その後、認証後に accessToken と検証関連の情報を取得できます。AccessToken は 12 時間後に期限切れになります。画像から Excel への変換 API を呼び出すときは、このトークンをリクエスト ヘッダーに含める必要があります: Authorization: Bearer {accessToken}。
import java.io.*;
import okhttp3.*;
public class main {
public static void main(String []args) throws IOException{
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "{\n \"publicKey\": \"{{public_key}}\",\n \"secretKey\": \"{{secret_key}}\"\n}");
Request request = new Request.Builder()
.url("https://api-server.compdf.com/server/v1/oauth/token")
.method("POST", body)
.build();
Response response = client.newCall(request).execute();
}
必要なパラメータ:
画像を Excel に変換するときに正確な変換を行うには、次のパラメータをインポートしてください。インポートしない場合は、デフォルトのオプションが適用されます。
- contentOptions : コンテンツを抽出するオプション (1: テキストのみ、2: 表のみ、3: すべてのコンテンツ) デフォルトは 2 です。
- worksheetOptions : ワークシートを作成するためのオプション (1: テーブルごとにシートを作成する、2: ページごとにシートを作成する、3: ファイルごとに 1 つのシートを作成する) デフォルトは 1 です。
- isAllowOcr : OCR を開くことを許可するかどうか (1: はい、0: いいえ)、デフォルトは 0。
- isContainOcrBg : OCR を有効にした後、背景画像を保持するかどうか (1: はい、0: いいえ) デフォルトは 0。
- isOnlyAiTable : AI がテーブルを認識できるようにするかどうか (1: はい、0: いいえ) デフォルトは 0。
画像を Excel に変換するパラメータを適用する方法:
{
"contentOptions": "2",
"worksheetOptions": "1",
"isAllowOcr": "0",
"isContainOcrBg": "0",
"isOnlyAiTable": "0"
}
ステップ2: タスクを作成する
前の手順で取得したaccessToken を置き換える必要があります。置き換えた後、応答データにtaskIdが取得されます。
import java.io.*;
import okhttp3.*;
public class main {
public static void main(String []args) throws IOException{
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://api-server.compdf.com/server/v1/task/img/xlsx?language={{language}}")
.method("GET", body)
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
}
}
ステップ3: ファイルをアップロードする
変換するファイルをアップロードします。画像変換では、JPG、JPEG、PNG、BMP 形式がサポートされています。必要に応じて、 taskId、accessToken、およびtask パラメータを更新してください。
import java.io.*;
import okhttp3.*;
public class main {
public static void main(String []args) throws IOException{
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{{file}}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("<file>")))
.addFormDataPart("taskId","{{taskId}}")
.addFormDataPart("language","{{language}}")
.addFormDataPart("password","")
.addFormDataPart("parameter","{ \"contentOptions\": \"2\", \"worksheetOptions\": \"1\"}")
.build();
Request request = new Request.Builder()
.url("https://api-server.compdf.com/server/v1/file/upload")
.method("POST", body)
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
}
}
ステップ4:ファイルを処理する
必要に応じてtaskId、accessToken、およびtask パラメータを更新してください。
import java.io.*;
import okhttp3.*;
public class main {
public static void main(String []args) throws IOException{
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://api-server.compdf.com/server/v1/execute/start?taskId={{taskId}}&language={{language}}")
.method("GET", body)
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
}
}
ステップ5: タスク情報を取得する
前の手順で取得したtaskIdとaccess_tokenを使用して、すべてのタスク情報にアクセスします。変換結果である .xlsx ファイルも取得できます。
import java.io.*;
import okhttp3.*;
public class main {
public static void main(String []args) throws IOException{
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://api-server.compdf.com/server/v1/task/taskInfo?taskId={{taskId}}")
.method("GET", body)
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
}
}