フッターコンテンツにスキップ
他のコンポーネントと比較する

IronOCRとPDFTRON OCRの比較

OCRは"光学文字認識"を意味します。 これは紙文書や画像を読み取り可能なテキストに変換するプロセスです。 これを行うためのさまざまな方法がありますが、スキャニングやキーボードを通じた手動入力などがあります。 これは、スキャンされたファイルやPDFを元のテキスト形式に変換するために行われます。 このプロセスは、手動での転記が難しいほど損傷した文書をスキャンしてOCRソフトウェアによって解釈することで、刑事事件において非常に有用であることが証明されています。

技術の進歩とデジタルツールの普及によって、OCRはGoogle Docsのようなアプリでの文書変換、学術界やビジネスの世界など他の分野にも導入されています。 OCRには主に"静的"と"動的"の2種類があります。 最も一般的なタイプは、文書全体を一度にスキャンする静的OCRです。 一方、動的OCRは1行ずつスキャンし、表形式のデータなどのより洗練されたレイアウトを処理できます。

この記事では、OCRおよびPDFのための最も広く利用されている2つのアプリケーションとドキュメントライブラリの比較について議論します。 それらは以下の通りです:

  • PDFTron OCR ・IronOCR

1.0 はじめに

1.1 PDFTron OCRの紹介と機能

PDFTron SDKでOCRを使用するには、別途OCRモジュールアドオンユーティリティをインストールする必要があります。 これにより、SDKは文書からテキストを検出できるようになります。 テキストを選択可能にし、検索可能にすることができます。 PDFTron SDKは最大100の言語をサポートしています。 PDFTron OCRエンジンは、TesseractのオープンソースLSTMニューラルネットワークによってサポートされています。 PDFTron OCRは、テキスト検出のための複数の画像形式をサポートしています。 ラスタ画像のみのPDFファイルもOCRに対応し、出力品質は入力画像に依存します。 OCRに最適な画像は、300 DPIの解像度を持つグレースケール画像です。

PDFTron OCRの特徴

  • 印刷された文書の画像を検索可能にする。
  • 単純なPDFを検索可能なPDFに変換する。
  • ビジネス文書から重要な情報を検出する。
  • 本のスキャンを容易にする。
  • 車両の画像から車両番号を検出する。
  • 視覚障害者を支援する。
  • OCRを使用して、複数の文書に対してデータ入力を容易に行うことができます。
  • 名刺から連絡先データリストへの情報の転送を簡単に行うことができます。

1.2 IronOCR — 概要と機能

Iron Softwareは、ソフトウェアエンジニアに.NETアプリケーションやWebサイトで写真やPDFからテキストコンテンツを読み取るためのIronOCR for .NETを提供します。 このソフトウェアは、写真からテキストやバーコードをスキャンし、数多くの世界の言語に対応し、プレーンテキストまたは構造化データとして出力します。 Iron SoftwareのOCRライブラリは、Web、コンソール、MVC、さまざまな.NETデスクトップアプリケーションで利用できます。 商業用途での展開の場合は、購入したライセンスに加えて開発チームからの直接支援が提供されます。

・IronOCRは、最新のTesseract 5エンジンを使用して、任意のPDF形式からテキスト、QRコード、バーコードを読み取ることができます。 このライブラリを使用してデスクトップ、ウェブアプリケーション、コンソールにOCRを追加することで、迅速な統合が可能です。 ・IronOCRは、125の国際言語をサポートしています。 また、カスタム言語や単語リストもサポートします。 ・IronOCRは、20以上のバーコードおよびQRコード形式を読み取ることができます。

  • マルチページGIFおよびTIFF画像形式をサポートしています。
  • 品質の低いスキャンや画像を修正します。
  • マルチスレッドをサポートしています。 一度に1つ以上のプロセスを実行できます。 ・IronOCRはページ、段落、行、単語、文字などの構造化データ出力を提供できます。 ・IronOCRは、Windows、Linux、macOSなどのオペレーティングシステムをサポートします。

2. Visual Studioで新しいプロジェクトを作成する

Visual Studioを開き、[ファイル]メニューを探します。 新しいプロジェクトを選択し、コンソールアプリケーションを選択します。 PDF文書を生成するために、このセクションではコンソールアプリケーションを使用します。

Pdftron Ocr Alternatives 1 related to 2. Visual Studioで新しいプロジェクトを作成する

プロジェクト名を入力し、適切なテキストボックスにファイルパスを選択します。 次に、作成ボタンをクリックします。 また、必要な.NET Frameworkを選択します。

Visual Studioプロジェクトは、選択されたアプリケーションの構造を生成します。

プロジェクトの構造がVisual Studioによって生成されます。 プログラム.csファイルは、Windows、コンソール、ウェブアプリケーションを選択した場合に開き、コードを入力してアプリケーションをビルド/実行できます。

Pdftron Ocr Alternatives 2 related to 2. Visual Studioで新しいプロジェクトを作成する

次の手順として、コードをテストするためにライブラリを追加する必要があります。

3.0 インストール

3.1 PDFtron OCRのインストール

The PDFTron OCR installation is completed manually and can be downloaded as a zip from the given link. プロジェクトに構成するために解凍して設定します。 このガイドは、Windowsを使用して.NET Frameworkアプリケーションに組み込まれた無料のPDFTron SDKトライアルを使用してPDFTronサンプルを実行するのを支援します。 無料トライアルにはソリューションエンジニアのサポートと無制限のトライアル使用が含まれています。

前提条件

Visual Studio: インストールの一部として、.NET Desktop Developmentおよび.NET Framework 4.5.1+開発ツールのワークロードが含まれていることを確認してください。 このガイドでは、Visual Studio 2017およびWindows用にPDFTronのC# .NET PDFライブラリを使用します。 Download the library using this link, .NET PDF SDK Download.

初期セットアップ

.zipファイルからフォルダーを抽出します。このガイドでは、抽出したフォルダーへのパスを選択するためにPDFNET_BASEを使用します。

// Set the base path where the extracted files are located
PDFNET_BASE = "path/to/extraction/folder/PDFNetDotNet4/";
// Set the base path where the extracted files are located
PDFNET_BASE = "path/to/extraction/folder/PDFNetDotNet4/";
' Set the base path where the extracted files are located
PDFNET_BASE = "path/to/extraction/folder/PDFNetDotNet4/"
$vbLabelText   $csharpLabel

サンプルを実行する

抽出した内容の場所に移動します。 サンプルフォルダー(PDFNET_BASE/Samples)を見つけて入ります。 このフォルダーには、PDFTron SDKがサポートする機能のサンプルコードが多数含まれています。

  1. Visual StudioでSamples_20XX.slnを開きます。 Visual Studioのインストールに適したバージョンを選択します。
  2. Select the sample code and set it as the Startup Project for the solution.
  3. プロジェクトを実行します。

アプリケーションに統合する

これは"PDFTron Hello World"アプリケーションと呼ばれます。 PDFドキュメントを開いたり保存したり閉じたりできる場合、残りのPDFTron SDKを統合するのは簡単です。

  1. Visual Studioで、好みの言語で.NET Frameworkコンソールアプリケーションプロジェクトを作成します。 それらはVisual C#またはVisual Basicカテゴリの下にあります。
  2. プロジェクトのフォルダーに移動します。 デフォルトでは、パスは次のようになります: C:/Users/User_Name/source/repos/myApp
  3. PDFNET_BASEからプロジェクトフォルダーに(このフォルダーには.csprojや.vbprojファイルが含まれています)、Libフォルダーをコピーします。
  4. ソリューションエクスプローラーを右側で探します。右クリックにより参照の追加オプションを選択します。 これにより、Reference Managerダイアログが開きます。
  5. ダイアログの下部で、[ブラウズ]を選択します。 コピーしたLibフォルダーに移動してPDFNetLoader.dllを参照に追加します。
  6. また、x86フォルダーからPDFNet.dllの適切なバージョンをさらに参照として追加します(path/to/your/project/folder/Lib/PDFNet/x86/PDFNet.dll)。 これにより、アプリケーションが32ビットおよび64ビットのOSの両方で実行されることが保証されます。
  7. PDFNet.dllをクリックします。 コピー元のローカルプロパティがFalseに設定されていることを確認します。
Pdftron Ocr Alternatives 3 related to アプリケーションに統合する

3.2 IronOCR のインストール

IronOCRライブラリは4つの方法でインストールできます。

それらは以下の通りです:

  • Visual Studioを使用する。
  • Visual Studioコマンドラインを使用する。
  • NuGetウェブサイトから直接ダウンロードする。 ・IronOCRウェブサイトから直接ダウンロードする。

3.2.1 Visual Studioを使用する

Visual Studioソフトウェアは、パッケージをソリューションに直接インストールするためのNuGetパッケージマネージャーオプションを提供します。 スクリーンショットは、NuGetパッケージマネージャーを開く方法を示しています。

Pdftron Ocr Alternatives 4 related to 3.2.1 Visual Studioを使用する

これは、NuGetウェブサイトからパッケージのリストを表示するための検索ボックスを提供します。パッケージマネージャーでは、"IronOCR"というキーワードを検索する必要があります。以下のスクリーンショットのように:

Pdftron Ocr Alternatives 5 related to 3.2.1 Visual Studioを使用する

上記の画像から、関連する検索結果のリストを見ることができます。 パッケージをソリューションにインストールするためには、必要なオプションを選択する必要があります。

3.2.2 Visual Studioコマンドラインを使用する

  • [Visual Studio]: ツール-> NuGetパッケージマネージャー -> パッケージマネージャーコンソールへ行く
  • 次のコードスニペットをパッケージマネージャーコンソールタブに入力します。
Install-Package IronOcr

パッケージは現在のプロジェクトに直接インストールされ、すぐに使用可能になります。

3.2.3 NuGetウェブサイトから直接ダウンロード

3つ目の方法では、NuGetパッケージをウェブサイトから直接ダウンロードできます

  • このリンクに移動します。
  • 右側のメニューから、ダウンロードパッケージオプションを選択することを確認してください。
  • ダウンロードしたパッケージをダブルクリックします。 自動的にインストールされます。
  • 次に、ソリューションをリロードしてプロジェクトで使用を開始します。

3.2.4 IronOCRウェブサイトから直接ダウンロード

ウェブサイトから最新のパッケージを直接ダウンロードできます。このリンクをクリックします。 ダウンロードした最新パッケージをプロジェクトに追加するために、提供された指示に従います。

  • ソリューションウィンドウからプロジェクトを右クリックします。
  • ダウンロードした参照の場所を参照するために、オプション参照を選択します。
  • 次に、OKをクリックして参照を追加します。

4.0 OCR画像

IronOCRとPDFtron OCRの両方が、画像をテキスト検索に変換するOCR技術を持っています。

4.1 PDFTronを使用する

PDFをDOCX、DOC、HTML、SVG、TIFF、PNG、JPEG、XPS、EPUB、TXT、および多くの他の形式に変換できます。

// Create a new PDF document
PDFDoc doc = new PDFDoc("sample.pdf");

// Convert PDF document to SVG
Convert.ToSvg(doc, "output.svg");

// Convert PDF document to XPS
Convert.ToXps("sample.pdf", "output.xps");

// Convert PDF document to multipage TIFF
Convert.TiffOutputOptions tiff_options = new Convert.TiffOutputOptions();
tiff_options.SetDPI(200);
tiff_options.SetDither(true);
tiff_options.SetMono(true);
Convert.ToTiff("sample.pdf", "output.tiff", tiff_options);

// Convert PDF to XOD
Convert.ToXod("sample.pdf", "output.xod");

// Convert PDF to HTML
Convert.ToHtml("sample.pdf", "output.html");
// Create a new PDF document
PDFDoc doc = new PDFDoc("sample.pdf");

// Convert PDF document to SVG
Convert.ToSvg(doc, "output.svg");

// Convert PDF document to XPS
Convert.ToXps("sample.pdf", "output.xps");

// Convert PDF document to multipage TIFF
Convert.TiffOutputOptions tiff_options = new Convert.TiffOutputOptions();
tiff_options.SetDPI(200);
tiff_options.SetDither(true);
tiff_options.SetMono(true);
Convert.ToTiff("sample.pdf", "output.tiff", tiff_options);

// Convert PDF to XOD
Convert.ToXod("sample.pdf", "output.xod");

// Convert PDF to HTML
Convert.ToHtml("sample.pdf", "output.html");
' Create a new PDF document
Dim doc As New PDFDoc("sample.pdf")

' Convert PDF document to SVG
Convert.ToSvg(doc, "output.svg")

' Convert PDF document to XPS
Convert.ToXps("sample.pdf", "output.xps")

' Convert PDF document to multipage TIFF
Dim tiff_options As New Convert.TiffOutputOptions()
tiff_options.SetDPI(200)
tiff_options.SetDither(True)
tiff_options.SetMono(True)
Convert.ToTiff("sample.pdf", "output.tiff", tiff_options)

' Convert PDF to XOD
Convert.ToXod("sample.pdf", "output.xod")

' Convert PDF to HTML
Convert.ToHtml("sample.pdf", "output.html")
$vbLabelText   $csharpLabel

4.2 IronOCRを使用

// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

using (var Input = new OcrInput())
{
    // Add an image for OCR
    Input.AddImage(@"3.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the text to the console
    Console.WriteLine(Result.Text);
    Console.ReadKey();
}
// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

using (var Input = new OcrInput())
{
    // Add an image for OCR
    Input.AddImage(@"3.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the text to the console
    Console.WriteLine(Result.Text);
    Console.ReadKey();
}
' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

Using Input = New OcrInput()
	' Add an image for OCR
	Input.AddImage("3.png")
	' Read the text from the image
	Dim Result = Ocr.Read(Input)
	' Print the text to the console
	Console.WriteLine(Result.Text)
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

上で示されたのは、Tesseract 5 APIを使用した画像ファイルをテキストに変換するプロセスです。 上記のコード行は、Iron Tesseractのオブジェクトを作成するために使用されました。 さらに、1つまたは複数の画像ファイルを追加できるように、利用可能な画像パスを必要とするOcrInputオブジェクトを作成しました。 Iron Tesseractオブジェクトの中で、"Read"関数を使用して画像を解析し、生成された結果をOCR結果として取得できます。 写真からテキストを抽出し、文字列に変換することができます。

このプロセスのために、"AddMultiFrameTiff"メソッドを使用して、多重フレーム画像を追加するためにTesseractを利用できます。 画像の各フレームは、Tesseractライブラリによって個別のページとして読み取られます。 画像の各フレームがスキャンされるまで、次のフレームに進む前にすべてのフレームが読み取られます。 このメソッドでは、TIFF画像形式のみがサポートされています。

Pdftron Ocr Alternatives 6 related to 4.2 IronOCRを使用

IronOCRの精度の結果として、編集可能なテキストにデータを正常に変換できたことが上の画像に表示されています。

5.0 OCR PDFファイル

IronOCRとPDFTron OCRは、PDFファイルを編集可能なテキストに変換します。 PDFTron OCRは、ページを保存し、画像を編集し、ページを認識するなど、ユーザーにさまざまなオプションを提供します。さらに、文書、テキスト、HTML形式などの保存オプションを提供できます。IronOCRは、変換されたOCRファイルをHTML、テキスト、PDFなどに保存することも可能にします。

5.1 PDFtron OCRを使用する

完全なサンプルコードは、PDFTron OCRを使用してPDF、XPS、EMF、SVG、TIFF、PNG、JPEG、および他の画像形式間で直接、高品質の変換を行う方法を示しています。

// Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.

using System;
using pdftron;
using pdftron.Common;
using pdftron.Filters;
using pdftron.SDF;
using pdftron.PDF;

// This code demonstrates conversion of documents to formats such as SVG, PDF, EMF, or XPS.

namespace ConvertTestCS
{
    class Testfile
    {
        public string inputFile, outputFile;
        public bool requiresWindowsPlatform;
        public Testfile(string inFile, string outFile, bool requiresWindowsPlatform_)
        {
            inputFile = inFile;
            outputFile = outFile;
            requiresWindowsPlatform = requiresWindowsPlatform_;
        }
    };

    class Class1
    {
        private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
        static Class1() {}

        // Relative paths to the input and output folders.
        const string inputPath = "../../../../TestFiles/";
        const string outputPath = "../../../../TestFiles/Output/";

        static bool ConvertSpecificFormats()
        {
            bool err = false;
            try
            {
                using (PDFDoc pdfdoc = new PDFDoc())
                {
                    // Convert from XPS to PDF
                    Console.WriteLine("Converting from XPS");
                    pdftron.PDF.Convert.FromXps(pdfdoc, inputPath + "simple-xps.xps");
                    pdfdoc.Save(outputPath + "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
                    Console.WriteLine("Saved xps2pdf v2.pdf");
                }
            }
            catch (PDFNetException e)
            {
                Console.WriteLine(e.Message);
                err = true;
            }

            // Other format conversions...

            return err;
        }

        static Boolean ConvertToPdfFromFile()
        {
            System.Collections.ArrayList testfiles = new System.Collections.ArrayList();
            testfiles.Add(new ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", false));
            // Add other test files...

            bool err = false;

            foreach (Testfile file in testfiles)
            {
                try
                {
                    using (pdftron.PDF.PDFDoc pdfdoc = new PDFDoc())
                    {
                        // Conditions and conversions...
                        pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath + file.inputFile);
                        pdfdoc.Save(outputPath + file.outputFile, SDFDoc.SaveOptions.e_linearized);
                        Console.WriteLine("Converted file: " + file.inputFile);
                        Console.WriteLine("to: " + file.outputFile);
                    }
                }
                // Catch exceptions...
            }

            return err;
        }

        static void Main(string [] args)
        {
            PDFNet.Initialize(PDFTronLicense.Key);
            bool err = false;

            err = ConvertToPdfFromFile();
            if (err)
            {
                Console.WriteLine("ConvertFile failed");
            }
            else
            {
                Console.WriteLine("ConvertFile succeeded");
            }

            err = ConvertSpecificFormats();
            if (err)
            {
                Console.WriteLine("ConvertSpecificFormats failed");
            }
            else
            {
                Console.WriteLine("ConvertSpecificFormats succeeded");
            }

            // Finalization...
            PDFNet.Terminate();
            Console.WriteLine("Done.");
        }
    }
}
// Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.

using System;
using pdftron;
using pdftron.Common;
using pdftron.Filters;
using pdftron.SDF;
using pdftron.PDF;

// This code demonstrates conversion of documents to formats such as SVG, PDF, EMF, or XPS.

namespace ConvertTestCS
{
    class Testfile
    {
        public string inputFile, outputFile;
        public bool requiresWindowsPlatform;
        public Testfile(string inFile, string outFile, bool requiresWindowsPlatform_)
        {
            inputFile = inFile;
            outputFile = outFile;
            requiresWindowsPlatform = requiresWindowsPlatform_;
        }
    };

    class Class1
    {
        private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
        static Class1() {}

        // Relative paths to the input and output folders.
        const string inputPath = "../../../../TestFiles/";
        const string outputPath = "../../../../TestFiles/Output/";

        static bool ConvertSpecificFormats()
        {
            bool err = false;
            try
            {
                using (PDFDoc pdfdoc = new PDFDoc())
                {
                    // Convert from XPS to PDF
                    Console.WriteLine("Converting from XPS");
                    pdftron.PDF.Convert.FromXps(pdfdoc, inputPath + "simple-xps.xps");
                    pdfdoc.Save(outputPath + "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
                    Console.WriteLine("Saved xps2pdf v2.pdf");
                }
            }
            catch (PDFNetException e)
            {
                Console.WriteLine(e.Message);
                err = true;
            }

            // Other format conversions...

            return err;
        }

        static Boolean ConvertToPdfFromFile()
        {
            System.Collections.ArrayList testfiles = new System.Collections.ArrayList();
            testfiles.Add(new ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", false));
            // Add other test files...

            bool err = false;

            foreach (Testfile file in testfiles)
            {
                try
                {
                    using (pdftron.PDF.PDFDoc pdfdoc = new PDFDoc())
                    {
                        // Conditions and conversions...
                        pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath + file.inputFile);
                        pdfdoc.Save(outputPath + file.outputFile, SDFDoc.SaveOptions.e_linearized);
                        Console.WriteLine("Converted file: " + file.inputFile);
                        Console.WriteLine("to: " + file.outputFile);
                    }
                }
                // Catch exceptions...
            }

            return err;
        }

        static void Main(string [] args)
        {
            PDFNet.Initialize(PDFTronLicense.Key);
            bool err = false;

            err = ConvertToPdfFromFile();
            if (err)
            {
                Console.WriteLine("ConvertFile failed");
            }
            else
            {
                Console.WriteLine("ConvertFile succeeded");
            }

            err = ConvertSpecificFormats();
            if (err)
            {
                Console.WriteLine("ConvertSpecificFormats failed");
            }
            else
            {
                Console.WriteLine("ConvertSpecificFormats succeeded");
            }

            // Finalization...
            PDFNet.Terminate();
            Console.WriteLine("Done.");
        }
    }
}
' Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.

Imports System
Imports pdftron
Imports pdftron.Common
Imports pdftron.Filters
Imports pdftron.SDF
Imports pdftron.PDF

' This code demonstrates conversion of documents to formats such as SVG, PDF, EMF, or XPS.

Namespace ConvertTestCS
	Friend Class Testfile
		Public inputFile, outputFile As String
		Public requiresWindowsPlatform As Boolean
		Public Sub New(ByVal inFile As String, ByVal outFile As String, ByVal requiresWindowsPlatform_ As Boolean)
			inputFile = inFile
			outputFile = outFile
			requiresWindowsPlatform = requiresWindowsPlatform_
		End Sub
	End Class

	Friend Class Class1
		Private Shared pdfNetLoader As pdftron.PDFNetLoader = pdftron.PDFNetLoader.Instance()
		Shared Sub New()
		End Sub

		' Relative paths to the input and output folders.
		Private Const inputPath As String = "../../../../TestFiles/"
		Private Const outputPath As String = "../../../../TestFiles/Output/"

		Private Shared Function ConvertSpecificFormats() As Boolean
			Dim err As Boolean = False
			Try
				Using pdfdoc As New PDFDoc()
					' Convert from XPS to PDF
					Console.WriteLine("Converting from XPS")
					pdftron.PDF.Convert.FromXps(pdfdoc, inputPath & "simple-xps.xps")
					pdfdoc.Save(outputPath & "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused)
					Console.WriteLine("Saved xps2pdf v2.pdf")
				End Using
			Catch e As PDFNetException
				Console.WriteLine(e.Message)
				err = True
			End Try

			' Other format conversions...

			Return err
		End Function

		Private Shared Function ConvertToPdfFromFile() As Boolean
			Dim testfiles As New System.Collections.ArrayList()
			testfiles.Add(New ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", False))
			' Add other test files...

			Dim err As Boolean = False

			For Each file As Testfile In testfiles
				Try
					Using pdfdoc As pdftron.PDF.PDFDoc = New PDFDoc()
						' Conditions and conversions...
						pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath & file.inputFile)
						pdfdoc.Save(outputPath & file.outputFile, SDFDoc.SaveOptions.e_linearized)
						Console.WriteLine("Converted file: " & file.inputFile)
						Console.WriteLine("to: " & file.outputFile)
					End Using
				End Try
				' Catch exceptions...
			Next file

			Return err
		End Function

		Shared Sub Main(ByVal args() As String)
			PDFNet.Initialize(PDFTronLicense.Key)
			Dim err As Boolean = False

			err = ConvertToPdfFromFile()
			If err Then
				Console.WriteLine("ConvertFile failed")
			Else
				Console.WriteLine("ConvertFile succeeded")
			End If

			err = ConvertSpecificFormats()
			If err Then
				Console.WriteLine("ConvertSpecificFormats failed")
			Else
				Console.WriteLine("ConvertSpecificFormats succeeded")
			End If

			' Finalization...
			PDFNet.Terminate()
			Console.WriteLine("Done.")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

5.2 IronOCRを使用

PDFファイルの管理は、OCRInput関数を使用して完了できます。 文書内の各ページは、Iron Tesseractクラスによって読み取られます。 その後、ページからテキストが抽出されます。 "AddPDF"と呼ばれる第二の関数があり、保護された文書を開くことができ、PDFを文書のリストに追加することを保証します(保護されている場合はパスワード)。 パスワードで保護されたPDF文書を開くには、以下のコードスニペットを使用します:

var Ocr = new IronTesseract(); // Configure nothing
using (var Input = new OcrInput())
{
    // Add PDF with password
    Input.AddPdf("example.pdf", "password");
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract(); // Configure nothing
using (var Input = new OcrInput())
{
    // Add PDF with password
    Input.AddPdf("example.pdf", "password");
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract() ' Configure nothing
Using Input = New OcrInput()
	' Add PDF with password
	Input.AddPdf("example.pdf", "password")
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

PDFファイル内の1ページから内容を読み取って抽出するには、"Addpdfpage"関数を使用します。 テキストを抽出したい正確なページ番号を指定するだけです。 "AddPdfPage"を使用すると、指定した複数のページからテキストを抽出できます。 IEnumerableは、多数のページを効率的に指定することを可能にします。 ファイルの場所および拡張子も含める必要があります。以下のコードスニペットはこれを示しています:

IEnumerable<int> numbers = new List<int> {2,8,10};
// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    // Single page
    Input.AddPdfPage("example.pdf",10);
    // Multiple pages
    Input.AddPdfPages("example.pdf", numbers);
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
    // Save result to a text file
    Result.SaveAsTextFile("ocrtext.txt");
}
IEnumerable<int> numbers = new List<int> {2,8,10};
// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    // Single page
    Input.AddPdfPage("example.pdf",10);
    // Multiple pages
    Input.AddPdfPages("example.pdf", numbers);
    var Result = Ocr.Read(Input);
    Console.WriteLine(Result.Text);
    // Save result to a text file
    Result.SaveAsTextFile("ocrtext.txt");
}
Dim numbers As IEnumerable(Of Integer) = New List(Of Integer) From {2, 8, 10}
' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
	' Single page
	Input.AddPdfPage("example.pdf",10)
	' Multiple pages
	Input.AddPdfPages("example.pdf", numbers)
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
	' Save result to a text file
	Result.SaveAsTextFile("ocrtext.txt")
End Using
$vbLabelText   $csharpLabel

結果をテキストファイル形式で直接保存するには、SaveAsTextFile関数を使用して、ファイルを出力ディレクトリパスに直接ダウンロードできます。 HTML形式で保存するには、SaveAsHocrFileを使用します。

6.1 PDFTronを使用する

PDFTron SDKを使用してPDFファイルから画像を抽出し、それらの位置情報やDPIを取得できます。 PDF画像をビットマップに変換する代わりに、elements.GetImageData()を使用して非圧縮/圧縮画像データを直接抽出することもできます(PDFデータ抽出コードサンプルに詳述されています)。 私たちのC# PDF LibraryとPDF Parsing and Content Extraction Libraryについて詳しく学びましょう。

6.2 IronOCRを使用

IronOCRは、スキャンされた文書から直接QRコードやバーコードを読み取ることができるという印象的な機能を持っています。 次のコードスニペットは、指定した画像または文書からバーコードをスキャンする方法を示しています。

// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
    // Add an image with a barcode
    Input.AddImage("barcode.gif");
    // Read the image
    var Result = Ocr.Read(Input);

    // Iterate over all barcodes found and display their values
    foreach (var Barcode in Result.Barcodes)
    {
        Console.WriteLine(Barcode.Value);
    }
}
// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
    // Add an image with a barcode
    Input.AddImage("barcode.gif");
    // Read the image
    var Result = Ocr.Read(Input);

    // Iterate over all barcodes found and display their values
    foreach (var Barcode in Result.Barcodes)
    {
        Console.WriteLine(Barcode.Value);
    }
}
' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.ReadBarCodes = True
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
	' Add an image with a barcode
	Input.AddImage("barcode.gif")
	' Read the image
	Dim Result = Ocr.Read(Input)

	' Iterate over all barcodes found and display their values
	For Each Barcode In Result.Barcodes
		Console.WriteLine(Barcode.Value)
	Next Barcode
End Using
$vbLabelText   $csharpLabel

上記のコードは、指定した画像またはPDF文書からバーコードを読み取るのに役立ちます。 1つの画像またはページで同時に多数のバーコードを読み取ることができます。 IronOCRは、バーコードを読み取るための独自のメソッドであるOcr.Configuration.ReadBarCodesを持っています。

入力をスキャンした後、データはOCRResultというオブジェクトに保存されます。 OCRResultのプロパティはBarcodesと呼ばれ、利用可能なすべてのバーコードデータのリストを持ちます。 バーコードの詳細に関連するそれぞれのデータをfor-eachループを利用して取得することができます。バーコードのスキャンと値の読み取りの2つの操作が単一のプロセスで完了します。

スレッド処理オプションのサポートもあり、複数のOCRプロセスを同時に完了することができます。さらに、IronOCRは指定した領域から正確な領域を認識することができます。

// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    // Define the content area to be scanned
    var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
    // Add image specifying the content area
    Input.Add("document.png", ContentArea);
    // Perform OCR operation
    var Result = Ocr.Read(Input);
    // Print the text
    Console.WriteLine(Result.Text);
}
// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    // Define the content area to be scanned
    var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
    // Add image specifying the content area
    Input.Add("document.png", ContentArea);
    // Perform OCR operation
    var Result = Ocr.Read(Input);
    // Print the text
    Console.WriteLine(Result.Text);
}
' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
	' Define the content area to be scanned
	Dim ContentArea = New System.Drawing.Rectangle() With {
		.X = 215,
		.Y = 1250,
		.Height = 280,
		.Width = 1335
	}
	' Add image specifying the content area
	Input.Add("document.png", ContentArea)
	' Perform OCR operation
	Dim Result = Ocr.Read(Input)
	' Print the text
	Console.WriteLine(Result.Text)
End Using
$vbLabelText   $csharpLabel

上記のコードスニペットは、特定の領域でOCRを実行する方法を示しています。 IronOCRのTesseractエンジンがテキストを認識するのを支援するので、PDF/画像の長方形の領域を指定するだけです。

IronOCRおよびPDFtron OCRのライセンスモデルと価格

IronOCRのライセンスモデルと価格

30日間の返金保証: ライセンスを購入すると、30日間の返金保証が受けられます。 30日以内に製品を返品したい場合は、返金を受けられます。

*簡単な統合:・IronOCRをNuGetパッケージとして追加するだけで、任意のプロジェクトおよび環境に簡単に統合できます。 一方、環境統合のもう一つの方法は、ウェブから直接ダウンロードすることです。

永続ライセンス: 購入したライセンスは更新の必要はありません。

無料サポートと製品更新: すべてのライセンスには製品の背後にあるグループからのサポートが付与され、1年間の無料製品更新が付随します。 いつでも拡張の購入が可能です。

即時ライセンス: 支払いが確認され次第、登録されたライセンスキーがすぐに送付されます。

すべてのライセンスは永久的であり、開発、ステージング、および実稼働に適用されます。

The Lite License(ライトライセンス)

  • 1箇所
  • 1プロジェクト
  • 永久ライセンス このパッケージにより、組織内の1名のソフトウェア開発者が1箇所でIron Softwareを利用できる。

このパッケージは、組織の1人のソフトウェア開発者が1か所でIron Softwareを利用することを許可します。 Iron Softwareは1つのイントラネットアプリケーション、ウェブアプリケーション、またはデスクトップソフトウェアプログラムで使用することができます。 ライセンスを組織外やエージェンシー/顧客の関係を超えて共有することは禁止されています。それらは譲渡不可です。 このライセンスタイプは、他のすべてのライセンスタイプと同様に、OEM再配布なしで、本契約で明示的に付与されていないすべての権利を排他的に除外しており、追加のカバレッジを購入せずに、Iron SoftwareをSaaSとして利用することを禁止しています。

価格:$799から年間始まります。

プロフェッショナルライセンス

  • 10箇所
  • 10プロジェクト このパッケージは、1つの組織内の所定数のソフトウェア開発者が、最大10箇所でIron Softwareを利用できるようにします。 このパッケージにより、組織内の1名のソフトウェア開発者が1箇所でIron Softwareを利用できる。

このライセンスは、組織内の所定の数のソフトウェア開発者が最大10か所でIron Softwareを利用することを許可します。 Iron Softwareは、望むだけ多くのウェブサイト、イントラネットアプリケーション、デスクトップソフトウェアアプリケーションで使用できます。ライセンスは譲渡不可であり、組織外やエージェンシー/顧客関係で共有することができません。他のすべてのライセンスタイプと同様に、このライセンスタイプは、本契約で明示的に付与されていないすべての権利を排他的に除外し、追加のカバレッジを購入せずにOEM再配布やIron SoftwareをSaaSとして利用することを禁止しています。 このライセンスは、最大10までの単一プロジェクトと統合できます。

価格: 年間 $999 から始まります。

無制限ライセンス

  • 無制限の場所
  • 無制限のプロジェクト これにより、組織内の無制限数のソフトウェア開発者が、無制限の場所でIron Softwareを利用できる。 このパッケージにより、組織内の1名のソフトウェア開発者が1箇所でIron Softwareを利用できる。

このライセンスは、組織内の無制限のソフトウェア開発者が無制限の場所でIron Softwareを利用することを許可します。 Iron Softwareは、イントラネットアプリケーション、デスクトップソフトウェアアプリケーション、またはウェブサイトで、希望するだけ多く使用できます。ライセンスは譲渡不可であり、組織外やエージェンシー/顧客関係で共有することができません。他のすべてのライセンスタイプと同様に、このライセンスタイプは、本契約で付与されていないすべての権利を排他的に除外し、追加のカバレッジを購入せずにOEMの再配布やIron SoftwareをSaaSとして使用することを禁じます。

価格:$4,799から年間始まります。

ロイヤルティフリーの再配布 — これは、基本ライセンスでカバーされるプロジェクトの数に基づいて、さまざまな形式の商用製品の一部としてIron Softwareを配布することを許可します(ロイヤルティを支払う必要はありません)。 これは、基本ライセンスでカバーされるプロジェクト数に基づいて、Iron SoftwareをSaaSソフトウェアサービス内に展開することを可能にします。

価格: 年間 $1,599 から始まります。

Pdftron Ocr Alternatives 7 related to 無制限ライセンス

PDFTronのライセンスモデルと価格

PDFTronパッケージ(カスタムライセンス)

  • カスタムライセンスの価格は異なる—特定の予算に合わせて概算を取得します。
  • Web、モバイル、デスクトッププラットフォームでのレンダリングおよびドキュメント処理用にPDFTronの強力なドキュメント表示および編集技術を展開します
  • 大量のドキュメントや特別な要件を持つ組織向け、OEM再配布の準備ができた多ドメイン価格と割引のための多年間優遇措置
  • オフラインおよびサンドボックス化された操作をサポート
  • カスタムの包括的な契約条件
  • コンサルティングおよびトレーニングサービス PDFTronカスタムライセンスは、あなたのアプリケーションおよびビジネス要件に合わせて調整されます。

価格は、フィーチャースコープによって決定されます。 IronOCR Liteライセンスは、1年間のサポートを受けた1人の開発者を含む未定義のパッケージで、費用は約$799です。

Pdftron Ocr Alternatives 8 related to PDFTronパッケージ(カスタムライセンス)

IronOCR プロフェッショナルライセンスには10人の開発者パッケージと1年間のサポートが含まれており、$999に費用がかかりますが、再び、PDFTronパッケージは未定義です。 パッケージを購入するには、サポートセンターに連絡して見積もりを取得する必要があります。 IronOCR LiteおよびProfessionalパッケージには、OEMまたはSaaSサービスと5年間のサポートオプションが含まれています。

The Liteバージョンには、5年間のサポートとSaaSおよびOEMサービスで1人の開発者パッケージが含まれており、費用は$2,897で、カスタマイズされたサポートオプションが付随します。 IronOCR Professionalバージョンには、10人の開発者パッケージと5年間のサポート、Saas、およびOEMサービスが含まれ、費用は$3,397です。また、PDFTronの10人の開発者パッケージには1年間のサポート、Saas、およびOEMサービスが含まれ、定義された価格はありません。 IronOCRは、.NET Frameworkの文脈で、さまざまな方法で写真およびPDF文書のサポートを得て、簡単に使用できるTesseractを提供します。

7.0 結論

また、Tesseract OCRパフォーマンスの向上のためのさまざまな設定も提供しています。 多くの言語をサポートし、1回の操作で複数の言語を使用できます。 Tesseract OCRに関する詳細は、彼らのウェブサイトを訪れて学んでください。 PDFTronは、画像およびPDF文書を認識するために異なるエンジンを使用するソフトウェアアプリケーションです。

OCRプロセスの性能を向上させるためのさまざまな設定と複数の言語を選択するオプションも提供します。 PDFTronはページ変換の使用に制限があります。 また、異なるオペレーティングシステム用のさまざまな価格があります。 IronOCRは競争力のあるソフトウェア製品で、競合他社よりも高精度を提供できます。

類似製品は時折、品質の低い画像を認識できずに不明な文字が結果として生じました。 一方、IronOCRは正確な結果を提供するだけでなく、画像からバーコードデータを認識し、バーコードの値を読み取ることができます。 IronOCRパッケージはすべてのプラットフォームで競争力のあるライセンスとサポートを単一価格で提供します。

対照的に、PDFTronのOCR製品はすべて専用に選択され、通常は高価です。価格は両製品間で異なり、IronOCRは$799から始まり、カスタム選択の結果として、PDFTronの開始価格は未定義です。 結論として、IronOCRはより低価格で多様な機能を提供します。 ライセンスをここで取得し、即座に開始してください!

さあ、何を待っていますか? 無料トライアルはすべての人に開放されています。

ご注意PDFTron OCRは、その所有者の登録商標です。

このサイトは、PDFTron OCRと提携しておらず、PDFTron OCRによって承認されていない、またはスポンサーされていません。 This site is not affiliated with, endorsed by, or sponsored by PDFTron OCR. すべての製品名、ロゴ、およびブランドは、それぞれの所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開される情報に基づいています。)}]

よくある質問

光学文字認識 (OCR) とは何であり、その重要性は何ですか?

光学文字認識 (OCR) は、紙の文書や画像を読み取れるテキストに変換する技術です。これは、法務、ビジネス、学術分野のアプリケーションに不可欠であり、スキャンされたファイルや PDF を元のテキスト形式に変換することを可能にします。

C# アプリケーションに OCR 機能を統合するにはどうすればよいですか?

OCR 機能は IronOCR を使用してC# アプリケーションに統合できます。IronOCR は .NET アプリケーションとのシームレスな統合を提供し、複数の言語とバーコード形式をサポートしています。

IronOCR のインストール手順は何ですか?

IronOCR は、NuGet パッケージ マネージャーを使用して Visual Studio 経由でインストールできます。また、Visual Studio コマンドラインを使用したり、NuGet ウェブサイトから直接ダウンロードしたり、IronOCR ウェブサイトから取得することも可能です。

PDFTron OCR と IronOCR の主な違いは何ですか?

PDFTron OCR は別途アドオンモジュールが必要で、ドキュメント形式の多様性を提供しますが、IronOCR は .NET との優れた統合を提供し、より多くの言語をサポートし、競争力のある価格を持ち、使いやすさに焦点を当てています。

IronOCR は低品質のスキャンをどのように処理しますか?

IronOCRは低品質スキャンを修正し、正確なテキスト認識と構造化データを提供します。

IronOCR の言語サポート機能はどのようなものですか?

IronOCR は 125 の言語をサポートしており、グローバルなアプリケーションで OCR 機能を必要とする場合に適した選択肢です。

IronOCR はバーコード認識に使用できますか?

はい、IronOCR はテキストだけでなく、PDF や画像から QR コードやバーコードを読み取ることができ、さまざまなアプリケーションでの実用性を向上させます。

OCR 技術の一般的なユースケースは何ですか?

OCR 技術は一般的にスキャンされた法的文書の変換、データ入力の自動化、PDF を検索可能にし、視覚障害者向けにテキストを音声に変換することで利用されています。

IronOCR の価格は PDFTron OCR と比べてどのようになっていますか?

IronOCR はさまざまなユーザーのニーズに対応したわかりやすい永久ライセンスを提供しており、一方で PDFTron OCR の価格は特定のアプリケーション要件に基づいてカスタマイズ可能で、通常は高い費用がかかる場合が多いです。

IronOCR を使用して画像をテキストに変換するプロセスは何ですか?

IronOCR を使用すると、.NET アプリケーション内でその OCR 機能を利用し、複数の画像形式や言語をサポートすることで、画像をテキストに変換できます。

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