C#を使用してPDFから画像を抽出する
次のチュートリアルでは、ホスト型JPedalクラウドAPIを使用してPDFから画像を抽出する方法を説明します。独自のセルフホスト型JPedalマイクロサービス をセットアップすることもできます。
上記のサービスは通常のHTTPリクエストでアクセスできますが、このチュートリアルでは、REST API をシンプルなC#ラッパーで包んだオープンソースのC# IDRCloudClient を使用します。
nugetを使用して、次のコマンドでidrsolutions-csharp-clientパッケージ をインストールします。
nuget install idrsolutions-csharp-client
以下は、PDFから画像を抽出する基本的なコード例です。設定オプションと高度な機能については後述します。
using System;
using System.Collections.Generic;
using idrsolutions_csharp_client;
class ExampleUsage
{
static void Main(string[] args)
{
var client = new IDRCloudClient("https://my-self-hosted-service.com/" + IDRCloudClient.JPEDAL);
try
{
Dictionary<string, string> parameters = new Dictionary<string, string>
{
["input"] = IDRCloudClient.UPLOAD,
["file"] = "path/to/input.pdf",
["settings"] = "{\"mode\":\"extractImages\",\"type\":\"rawImages\",\"format\":\"png\"}"
};
Dictionary<string, string> results = client.Convert(parameters);
String outputUrl = results.GetValueOrDefault("downloadUrl", "No download URL provided");
client.DownloadResult(results, "path/to/output/dir");
Console.WriteLine("Converted: " + outputUrl);
}
catch (Exception e)
{
Console.WriteLine("Conversion failed: " + e.Message);
}
}
}
JPedalマイクロサービスは、抽出完了時に抽出のステータス
を送信するコールバックURLを受け付けます。コールバックURLを使用することで、抽出が完了したかどうかを判断するためにサービスをポーリングする必要がなくなります。
コールバックURLは以下のようにconvertメソッドに提供できます。
Dictionary<string, string> parameters = new Dictionary<string, string>
{
["callbackUrl"] = "http://listener.url",
["input"] = IDRCloudClient.UPLOAD,
["file"] = "path/to/input.pdf",
["settings"] = "{\"mode\":\"extractImages\",\"type\":\"rawImages\",\"format\":\"png\"}"
};
JPedal APIは、抽出をカスタマイズするためのキーと値のペアの設定オプションを含む文字列化されたJSONオブジェクトを受け付けます。設定はparameters配列に追加する必要があります。PDFから画像を抽出するための設定オプションの完全なリストはこちら で確認できます。
["settings"] = "{\"key\":\"value\",\"key\":\"value\"}"
ローカルファイルをアップロードする代わりに、JPedalマイクロサービスがダウンロードして抽出を実行するURLを提供することもできます。これを行うには、parameters変数のinputとfileの値を以下のように置き換える必要があります。
["input"] = IDRCloudClient.DOWNLOAD
["url"] = "http://exampleURL/exampleFile.pdf"
PDFから画像を抽出するためにユーザー名とパスワードが必要な独自のJPedalマイクロサービスをデプロイした場合、各変換時にそれらを提供する必要があります。以下のように、usernameとpasswordという名前の2つの変数をconvertメソッドに渡すことで提供されます。
var client = new IDRCloudClient("http://exampleURL.com/" + IDRCloudClient.JPEDAL, "username", "password");
GitHubのIDRCloudClient
NugetのIDRCloudClient
JPedalマイクロサービスAPI
JPedalマイクロサービスの使用方法
