フッターコンテンツにスキップ
IRONOCRの使い方

.NET OCR SDK: C# 用テキスト認識ライブラリ

.NET OCR SDKは、C#および.NETアプリケーションが画像、スキャンされたPDF、その他のドキュメント形式からプログラムによってテキストを抽出できるようにするソフトウェア開発キットです。 IronOCRは、本番環境ですぐに使用できる.NET OCR SDKです。調整済みのTesseract 5エンジンをベースに、前処理フィルター、バーコード読み取り、検索可能なPDF出力、125以上の言語のサポートなど、様々な機能を搭載しています。これらの機能はすべて、Windows、Linux、macOS、クラウドプラットフォームで動作するクリーンなC# APIを通じて利用可能です。

IronOCRがあなたのプロジェクトに最適な.NET OCR SDKである理由とは?

ゼロからテキスト認識システムを構築するということは、画像前処理パイプライン、言語データファイル、スレッドモデル、出力解析などを管理することを意味し、最初の単語を抽出するまでに数ヶ月の作業が必要となる。 IronOCRは、実績のあるエンジンを搭載することで、そうした負担を解消します。チームは数分でプロジェクトに組み込むことができます。

Tesseractの生のバインディングと一線を画す主な機能:

  • 手書き文字を含む125以上の言語と文字体系を認識
  • 内蔵フィルター:ノイズ除去、傾き補正、二値化、解像度向上、コントラスト補正
  • 同一読み取りパス内でバーコードとQRコードを検出
  • アーカイブワークフロー用の非表示テキストレイヤーを備えた検索可能なPDF生成
  • 高スループットパイプライン向けの非同期および並列バッチ処理
  • 特定のページ領域を対象としたゾーンOCRにより、処理時間を短縮
  • Windows、Linux、macOS、Docker、Azureにおけるクロスプラットフォームサポート

Tesseract OCRプロジェクトのドキュメントによると、Tesseractの生データでは、言語パック、DPI設定、出力モードなどを手動で設定する必要がある。 IronOCRはこれらすべてを自動的に処理するため、抽出方法ではなく、抽出されたテキストの意味に集中できます。

IronOCRはRaw Tesseractと比べてどう違うのか?

P/Invoke ラッパーまたは Tesseract NuGetパッケージを介した生の Tesseract では、tessdata 言語ファイルのダウンロードと配置、適切なページ分割モードの選択、複数ページの TIFF および PDF 分割の自己処理、並列処理が必要な場合のスレッドの配線など、すべてユーザーの責任となります。 これらの詳細はどれも、あなたのビジネス上の問題に特有のものではありません。

IronOCRは、そうした配管システム全体を包み込みます。 型付きAPIインターフェース、自動的なtessdata管理、組み込みのPDF分割・再結合機能、そして複数のリクエストで再利用できるスレッドセーフなエンジンが利用できます。 その代償として、本番環境で使用するには有料ライセンスが必要になります。ライセンスページには、無料の開発ライセンスを含む現在の価格帯が表示されています。

オープンソースのみの依存関係を必要とするチームにとって、Tesseractの生データにカスタムのプリプロセス処理を組み合わせる方法は有効な選択肢となる。 信頼性の高いOCRを迅速に提供する必要があるチームにとって、 IronOCRは統合対象をわずか数行のC#コードにまで削減します。

IronOCR .NET SDKはどのようにインストールするのですか?

インストールは、標準の.NETパッケージマネージャーであるNuGetを通じて行います。 プロジェクトディレクトリで次のコマンドを実行します:

Install-Package IronOcr

Visual Studio ユーザーの場合は、 NuGetパッケージ マネージャー GUI で IronOcr を検索し、そこからインストールしてください。 手動でのDLL参照を含む完全なインストールオプションについては、 IronOCRのインストールに関するドキュメントを参照してください。

インストール後、ライセンスキーをアプリケーションの起動時または appsettings.json に追加してください。 無料トライアルを開始すると、評価期間中にすべての機能が利用できるトライアルキーが入手できます。

インストールの確認

インストール後の簡単な確認で、すべてが正しく配線されていることが確認できます。 .NET 10 をターゲットとするコンソールアプリケーションを作成します。

using IronOcr;

// Minimal smoke test -- reads a single image and prints extracted text
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("sample.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

// Minimal smoke test -- reads a single image and prints extracted text
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("sample.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

コンソールにテキストが表示された場合、SDKはインストールされており、ライセンスキーは有効です。 これで、本番環境のワークフローを構築する準備が整いました。

C#で画像やPDFからテキストを抽出するにはどうすればいいですか?

コアとなる抽出パターンは、すべての入力タイプで一貫しています。IronTesseract インスタンスを作成し、コンテンツを OcrInput オブジェクトにロードし、Read() を呼び出します。 IronOCRは拡張子からファイル形式を自動検出するため、JPEG、PNG、TIFF、BMP、および複数ページのPDFファイルを同じコードパスで処理できます。

using IronOcr;

// Reusable OCR service encapsulating the IronTesseract engine
public class OcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ExtractText(string filePath)
    {
        using var input = new OcrInput();

        // LoadPdf for PDF files; LoadImage for raster formats
        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        return _ocr.Read(input).Text;
    }

    public async Task<string> ExtractTextAsync(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        var result = await _ocr.ReadAsync(input);
        return result.Text;
    }
}
using IronOcr;

// Reusable OCR service encapsulating the IronTesseract engine
public class OcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ExtractText(string filePath)
    {
        using var input = new OcrInput();

        // LoadPdf for PDF files; LoadImage for raster formats
        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        return _ocr.Read(input).Text;
    }

    public async Task<string> ExtractTextAsync(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        var result = await _ocr.ReadAsync(input);
        return result.Text;
    }
}
$vbLabelText   $csharpLabel

サービス利用のための最上位エントリーポイント:

using IronOcr;

var service = new OcrService();
string text = await service.ExtractTextAsync("invoice.pdf");
Console.WriteLine(text);
using IronOcr;

var service = new OcrService();
string text = await service.ExtractTextAsync("invoice.pdf");
Console.WriteLine(text);
$vbLabelText   $csharpLabel

IronTesseract インスタンスはスレッドセーフであり、再利用できるように設計されています。 リクエストごとにインスタンス化するのではなく、アプリケーションの起動時に一度だけ作成します(例えば、 ASP.NET Coreの依存性注入を使用)。

複数ページの PDF の場合、result.Pages を使用すると、ページごとにテキスト、信頼度スコア、およびバウンディングボックスにアクセスできます。 ページごとの反復処理の詳細については、複数ページPDFのOCRガイドを参照してください。

前処理フィルターを使用してOCRの精度を向上させるにはどうすればよいですか?

フラットベッドスキャナー、スマートフォンのカメラ、ファックス機などでスキャンした生データは、ノイズ、回転、コントラストの低下、解像度の不足といった問題が頻繁に発生する。 IronOCRの画像品質補正パイプラインは、読み取り呼び出しの前に連結されるターゲットフィルターによって、それぞれの問題に対処します。

using IronOcr;

public class AccuracyOptimizedOcr
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ProcessLowQualityDocument(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        // Chain preprocessing filters in order of operation
        input.DeNoise();              // Remove scan artifacts and speckling
        input.Deskew();               // Correct page tilt up to 35 degrees
        input.Scale(150);             // Enlarge small text for better recognition
        input.Binarize();             // Convert to black/white for cleaner edges
        input.EnhanceResolution(300); // Sharpen blurry or low-DPI input

        var result = _ocr.Read(input);

        // Confidence below 70 often signals a preprocessing mismatch
        if (result.Confidence < 70)
            Console.WriteLine($"Warning: low confidence ({result.Confidence:F1}%)");

        return result.Text;
    }
}
using IronOcr;

public class AccuracyOptimizedOcr
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ProcessLowQualityDocument(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        // Chain preprocessing filters in order of operation
        input.DeNoise();              // Remove scan artifacts and speckling
        input.Deskew();               // Correct page tilt up to 35 degrees
        input.Scale(150);             // Enlarge small text for better recognition
        input.Binarize();             // Convert to black/white for cleaner edges
        input.EnhanceResolution(300); // Sharpen blurry or low-DPI input

        var result = _ocr.Read(input);

        // Confidence below 70 often signals a preprocessing mismatch
        if (result.Confidence < 70)
            Console.WriteLine($"Warning: low confidence ({result.Confidence:F1}%)");

        return result.Text;
    }
}
$vbLabelText   $csharpLabel

フィルター選択ガイド:

  • DeNoise() -- ひどい斑点や圧縮アーティファクトのあるスキャンに使用します
  • Deskew() -- 書類を斜めから撮影する場合に使用します。 自動検出については、ページ回転検出を参照してください。
  • Scale() -- 小さな文字または 150 DPI 未満の入力に使用します。 150~200の値で通常は最良の結果が得られます
  • Binarize() -- 色付きまたはグラデーションの背景に使用します。 画像を厳密な白黒に変換する
  • EnhanceResolution() -- ぼやけたテキストやコントラストの低いテキストに使用します。 Tesseractの最適な解像度は300 DPIとされています。

国際文書解析認識誌に掲載された研究によると、文字認識率を向上させる上で、二値化と傾き補正が最も効果的な前処理ステップであることが一貫して示されている。 両方とも、あらゆる生産パイプラインの基準として適用してください。

IronOCRの前処理フィルターとその主な使用例
フィルター 問題解決 応募時期
`DeNoise()` スキャナーのアーティファクト、スペックルノイズ フラットベッドまたはファックスのスキャン
`Deskew()` ページの傾きと回転 撮影された書類または位置ずれした書類
`Scale()` 文字が小さい、またはDPIが低い 150 DPI未満の入力
`Binarize()` カラー背景、グラデーション 色付きの紙または透かし入りの用紙
`EnhanceResolution()` ぼやけと低コントラスト カメラで撮影した画像と圧縮されたJPEG画像

本番環境向けのバッチ処理パイプラインはどのように構築すればよいですか?

単一ドキュメントの抽出は簡単ですが、実際の運用環境では、数百または数千ものファイルがキュー、共有フォルダ、またはクラウドストレージに到着します。 IronOCRの非同期APIとスレッドセーフなエンジンは、並列ワークロードに適しています。

using IronOcr;
using Microsoft.Extensions.Logging;

public class ProductionOcrService
{
    private readonly IronTesseract _ocr;
    private readonly ILogger<ProductionOcrService> _logger;

    public ProductionOcrService(ILogger<ProductionOcrService> logger)
    {
        _logger = logger;
        _ocr = new IronTesseract
        {
            Configuration =
            {
                RenderSearchablePdfsAndHocr = true,
                ReadBarCodes = true
            }
        };
    }

    public async Task<IReadOnlyList<string>> ProcessBatchAsync(
        IEnumerable<string> filePaths,
        int maxDegreeOfParallelism = 4)
    {
        var results = new System.Collections.Concurrent.ConcurrentBag<string>();

        var options = new ParallelOptions
        {
            MaxDegreeOfParallelism = maxDegreeOfParallelism
        };

        await Parallel.ForEachAsync(filePaths, options, async (filePath, ct) =>
        {
            try
            {
                using var input = new OcrInput();

                if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
                    input.LoadPdf(filePath);
                else
                    input.LoadImage(filePath);

                var result = await _ocr.ReadAsync(input);
                results.Add(result.Text);
                _logger.LogInformation("Processed {FilePath} at {Confidence:F1}% confidence",
                    filePath, result.Confidence);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "OCR failed for {FilePath}", filePath);
                results.Add(string.Empty);
            }
        });

        return results.ToList();
    }

    public void CreateSearchablePdf(string inputPath, string outputPath)
    {
        using var input = new OcrInput();

        if (inputPath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(inputPath);
        else
            input.LoadImage(inputPath);

        _ocr.Read(input).SaveAsSearchablePdf(outputPath);
        _logger.LogInformation("Searchable PDF written to {OutputPath}", outputPath);
    }
}
using IronOcr;
using Microsoft.Extensions.Logging;

public class ProductionOcrService
{
    private readonly IronTesseract _ocr;
    private readonly ILogger<ProductionOcrService> _logger;

    public ProductionOcrService(ILogger<ProductionOcrService> logger)
    {
        _logger = logger;
        _ocr = new IronTesseract
        {
            Configuration =
            {
                RenderSearchablePdfsAndHocr = true,
                ReadBarCodes = true
            }
        };
    }

    public async Task<IReadOnlyList<string>> ProcessBatchAsync(
        IEnumerable<string> filePaths,
        int maxDegreeOfParallelism = 4)
    {
        var results = new System.Collections.Concurrent.ConcurrentBag<string>();

        var options = new ParallelOptions
        {
            MaxDegreeOfParallelism = maxDegreeOfParallelism
        };

        await Parallel.ForEachAsync(filePaths, options, async (filePath, ct) =>
        {
            try
            {
                using var input = new OcrInput();

                if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
                    input.LoadPdf(filePath);
                else
                    input.LoadImage(filePath);

                var result = await _ocr.ReadAsync(input);
                results.Add(result.Text);
                _logger.LogInformation("Processed {FilePath} at {Confidence:F1}% confidence",
                    filePath, result.Confidence);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "OCR failed for {FilePath}", filePath);
                results.Add(string.Empty);
            }
        });

        return results.ToList();
    }

    public void CreateSearchablePdf(string inputPath, string outputPath)
    {
        using var input = new OcrInput();

        if (inputPath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(inputPath);
        else
            input.LoadImage(inputPath);

        _ocr.Read(input).SaveAsSearchablePdf(outputPath);
        _logger.LogInformation("Searchable PDF written to {OutputPath}", outputPath);
    }
}
$vbLabelText   $csharpLabel

MaxDegreeOfParallelism キャップは、ファイルが大きい場合にメモリ不足になるのを防ぎます。 4コアサーバーでは、値4がうまく機能します。 メモリ使用量を分析した後でのみ、値を増やしてください。 Azure Functions または AWS Lambda のデプロイでは、関数インスタンスごとに同時実行数を 1 に設定し、代わりに水平方向にスケールしてください。

CreateSearchablePdf は、元の画像が可視レイヤーとして保持され、認識されたテキストがその下に目に見えない形で埋め込まれた PDF を生成します。 これにより、PDFビューアでの全文検索や検索エンジンによるインデックス作成が可能になります。これは、文書管理システムで一般的に求められる要件です。

生産における信頼度スコアのモニタリング

すべての OcrResult は、認識されたテキストに対するエンジンの確信度を反映するプロパティ (0-100) を公開します。 ログ記録インフラストラクチャでこの指標を追跡することで、文書の品質が低下した際に早期警告信号を受け取ることができます。たとえば、スキャナーのキャリブレーションがずれたり、新しい文書サプライヤーが予想よりも低いDPIのスキャンデータを送ってきた場合などです。

実用的な閾値戦略としては、信頼度が80未満の場合に警告をログに記録し、70未満の場合に前処理の再試行をトリガーし、60未満の場合に文書を人間によるレビュー対象としてフラグ付けする。この段階的なアプローチにより、下流システムでデータ破損が発生する前に品質問題を捕捉できる。

Microsoft .NET のログ記録に関するドキュメントでは、 ASP.NET Core の組み込み DI コンテナと統合するチーム向けに、上記のバッチ サービスで使用されている ILogger パターンについて説明しています。

スキャンした文書から構造化データを抽出するにはどうすればよいですか?

テキスト抽出が最初のステップです。2番目のステップは、抽出したテキストをアプリケーションが処理できる型付きフィールドに解析することです。 このパターンは、IronOCR の読み取りパスと .NET の Regex を組み合わせて、請求書、フォーム、レポートから構造化データを抽出します。

using IronOcr;
using System.Text.RegularExpressions;

public record Invoice(
    string? InvoiceNumber,
    DateOnly? Date,
    decimal? TotalAmount,
    string RawText
);

public class InvoiceOcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public Invoice ExtractInvoiceData(string invoicePath)
    {
        using var input = new OcrInput();

        if (invoicePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(invoicePath);
        else
            input.LoadImage(invoicePath);

        input.DeNoise();
        input.Deskew();

        var result = _ocr.Read(input);
        string text = result.Text;

        return new Invoice(
            InvoiceNumber: ExtractInvoiceNumber(text),
            Date: ExtractDate(text),
            TotalAmount: ExtractAmount(text),
            RawText: text
        );
    }

    private static string? ExtractInvoiceNumber(string text)
    {
        var match = Regex.Match(text, @"Invoice\s*#?:?\s*(\S+)", RegexOptions.IgnoreCase);
        return match.Success ? match.Groups[1].Value : null;
    }

    private static DateOnly? ExtractDate(string text)
    {
        // Numeric format: MM/DD/YYYY
        var numeric = Regex.Match(text, @"\b(\d{1,2}/\d{1,2}/\d{2,4})\b");
        if (numeric.Success && DateTime.TryParse(numeric.Groups[1].Value, out var d1))
            return DateOnly.FromDateTime(d1);

        // Written format: January 15, 2025
        var written = Regex.Match(text,
            @"\b(January|February|March|April|May|June|July|August|September|October|November|December)\s+(\d{1,2}),?\s+(\d{4})\b",
            RegexOptions.IgnoreCase);
        if (written.Success && DateTime.TryParse(written.Value, out var d2))
            return DateOnly.FromDateTime(d2);

        return null;
    }

    private static decimal? ExtractAmount(string text)
    {
        var match = Regex.Match(text, @"\$\s*(\d+(?:\.\d{2})?)");
        return match.Success && decimal.TryParse(match.Groups[1].Value, out var amt)
            ? amt
            : null;
    }
}
using IronOcr;
using System.Text.RegularExpressions;

public record Invoice(
    string? InvoiceNumber,
    DateOnly? Date,
    decimal? TotalAmount,
    string RawText
);

public class InvoiceOcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public Invoice ExtractInvoiceData(string invoicePath)
    {
        using var input = new OcrInput();

        if (invoicePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(invoicePath);
        else
            input.LoadImage(invoicePath);

        input.DeNoise();
        input.Deskew();

        var result = _ocr.Read(input);
        string text = result.Text;

        return new Invoice(
            InvoiceNumber: ExtractInvoiceNumber(text),
            Date: ExtractDate(text),
            TotalAmount: ExtractAmount(text),
            RawText: text
        );
    }

    private static string? ExtractInvoiceNumber(string text)
    {
        var match = Regex.Match(text, @"Invoice\s*#?:?\s*(\S+)", RegexOptions.IgnoreCase);
        return match.Success ? match.Groups[1].Value : null;
    }

    private static DateOnly? ExtractDate(string text)
    {
        // Numeric format: MM/DD/YYYY
        var numeric = Regex.Match(text, @"\b(\d{1,2}/\d{1,2}/\d{2,4})\b");
        if (numeric.Success && DateTime.TryParse(numeric.Groups[1].Value, out var d1))
            return DateOnly.FromDateTime(d1);

        // Written format: January 15, 2025
        var written = Regex.Match(text,
            @"\b(January|February|March|April|May|June|July|August|September|October|November|December)\s+(\d{1,2}),?\s+(\d{4})\b",
            RegexOptions.IgnoreCase);
        if (written.Success && DateTime.TryParse(written.Value, out var d2))
            return DateOnly.FromDateTime(d2);

        return null;
    }

    private static decimal? ExtractAmount(string text)
    {
        var match = Regex.Match(text, @"\$\s*(\d+(?:\.\d{2})?)");
        return match.Success && decimal.TryParse(match.Groups[1].Value, out var amt)
            ? amt
            : null;
    }
}
$vbLabelText   $csharpLabel

この方法は、フォーム上の各フィールドがどこに表示されるかを正確に把握している場合に、ゾーンOCRと組み合わせると効果的です。 境界矩形を指定することで、ページ全体の認識を省略し、請求書番号または合計金額を含む領域のみを対象とすることができるため、固定レイアウト文書の処理時間を大幅に短縮できます。

表や構造化フォームなど、より高度な抽出シナリオについては、製品サイトにあるIronOCRのデータ抽出例を参照してください。

.NETで多言語OCRをどのように処理しますか?

多くの組織は、輸出入書類、国際契約書、多言語対応の顧客提出書類など、複数の言語で書かれた文書を処理しています。 IronOCRは、読み取り呼び出しの前に言語パックを設定できるようにすることで、この問題を解決します。

using IronOcr;

// Configure multi-language recognition
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;  // Swap for any of 125+ supported languages

// For mixed-language documents, combine language packs
ocr.AddSecondaryLanguage(OcrLanguage.German);

using var input = new OcrInput();
input.LoadPdf("multilingual-contract.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

// Configure multi-language recognition
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;  // Swap for any of 125+ supported languages

// For mixed-language documents, combine language packs
ocr.AddSecondaryLanguage(OcrLanguage.German);

using var input = new OcrInput();
input.LoadPdf("multilingual-contract.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

IronOCRの言語サポートページには、利用可能な125種類以上の言語パックすべてとダウンロード手順が掲載されています。 言語パックはNuGetパッケージ (例: IronOcr.Languages.German) として提供されるため、既に使用しているパッケージ管理ワークフローと統合できます。

ラテン文字以外の文字セット(アラビア語、中国語、日本語、韓国語など)については、 IronOCRは右から左へのテキスト方向と表意文字に対応した最適化されたモデルを提供します。設定の詳細については、 CJK OCRガイドを参照してください。

次のステップは何ですか?

これで、あらゆる.NET 10アプリケーションに実用レベルのOCR機能を追加するために必要なパターンが揃いました。基本的なテキスト抽出、困難なスキャンに対する前処理、非同期バッチ処理、構造化データ解析、および多言語サポートなどです。

ここから、プロジェクトのニーズに基づいて以下の分野を探索してください。

-バーコードとQRコードの読み取り-- 同じ画像パスから機械読み取り可能なコードを抽出します

まずは無料トライアルライセンスで、ご自身のドキュメントを使って全機能を評価してから、有料プランへの加入を検討してください。

NuGet 購入の準備ができていませんか?

PM >  Install-Package IronOcr

IronOCRNuGet でチェックしてください。1000万回以上のダウンロードで、C#によるPDF開発を変革しています。 DLL または Windowsインストーラー をダウンロードすることもできます。

よくある質問

.NET OCR SDKとは何ですか?

IronOCRによる.NET OCR SDKは、C#アプリケーションに光学文字認識機能を統合するために設計されたライブラリであり、開発者は画像、PDF、およびスキャンされた文書からテキストを抽出できます。

IronOCR for .NET SDKは、シンプルなAPI、複数の言語のサポート、クロスプラットフォームの互換性、さまざまなファイル形式や低品質スキャンに対応するための高度な機能を提供します。

IronOCR for .NET SDKは、シンプルなAPI、複数言語のサポート、クロスプラットフォーム互換性、さまざまなファイル形式および低品質スキャンの処理に関する高度な機能を提供します。

IronOCRはどのように異なる言語を処理しますか?

IronOCRは低品質のスキャンを処理できますか?

はい、IronOCRは低品質のスキャンに効果的に対応するように設計されており、困難なシナリオであってもテキスト認識精度を向上させる高度なアルゴリズムを採用しています。

IronOCR for .NET SDKはクロスプラットフォームですか?

IronOCR for .NET SDKはクロスプラットフォームであり、さまざまなオペレーティングシステムで使用できるため、さまざまな開発環境にとって柔軟性があります。

IronOCRはどのようなファイル形式をサポートしていますか?

IronOCRは、画像、PDF、スキャンされたドキュメントなどの幅広いファイル形式をサポートし、異なるメディアでのテキスト認識タスクに柔軟性を提供します。

開発者はIronOCRをどのようにプロジェクトに統合できますか?

開発者はIronOCRのシンプルなAPIを使用して、C#プロジェクトに簡単に統合し、アプリケーションにOCR機能を追加するプロセスを簡素化できます。

開発者は、型付き API を使用してIronOCR をC# プロジェクトに統合できます。これにより、アプリケーションに OCR 機能を追加するプロセスが簡素化されます。

IronOCRは、ドキュメント管理システム、自動データ入力、コンテンツのデジタル化、画像やPDFからのテキスト抽出を必要とするあらゆるアプリケーションで利用できます。

このウェブページでは、IronOCR for .NET OCR SDKの概要を提供し、C#アプリケーション向けのテキスト認識機能において、シンプルなAPI、企業レベルのサポート、さまざまなドキュメント形式や言語を扱うためのクロスプラットフォーム機能などの機能に焦点を当てています。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね