Inti API
API Inti
Halaman ini membahas siklus hidup objek dan perilaku pengecualian dari empat tipe inti: AsposeOcr, OcrInput, OcrOutput, dan RecognitionResult.
Siklus Hidup OcrInput
OcrInput mengimplementasikan IDisposable dan harus dibuat dalam pernyataan using. Konstruktornya menerima sebuah InputType (InputType.SingleImage atau InputType.PDF), dan OcrInput.Add(string) mengantri satu jalur file pada satu waktu — instance OcrInput yang sama dapat menampung beberapa file dengan tipe input yang sama.
using Aspose.OCR;
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Mengenali dan Membaca OcrOutput
AsposeOcr.Recognize(OcrInput) mengembalikan sebuah OcrOutput, yang merupakan List<RecognitionResult> — dapat diindeks seperti daftar mana pun, dengan satu RecognitionResult per gambar (untuk InputType.SingleImage, satu per file yang ditambahkan) atau per halaman PDF (untuk InputType.PDF).
var api = new AsposeOcr();
OcrOutput output = api.Recognize(input);
RecognitionResult first = output[0];RecognitionResult dan Tipe LinesResult Bersarang
RecognitionResult.LinesResult adalah kelas bersarang — referensikan sebagai RecognitionResult.LinesResult, bukan sebagai tipe mandiri. Setiap RecognitionResult menyajikan:
RecognitionText— teks yang dikenali lengkap untuk gambar atau halaman tersebut, dengan baris digabungkan oleh jeda baris.RecognitionLinesResult— sebuahList<RecognitionResult.LinesResult>, satu entri per baris teks yang terdeteksi, masing-masing denganTextInLine(teks baris) danLine(sebuahSystem.Drawing.Rectangleyang memberi koordinat piksel baris tersebut dalam gambar sumber).
RecognitionResult result = output[0];
Console.WriteLine(result.RecognitionText);
foreach (RecognitionResult.LinesResult line in result.RecognitionLinesResult)
{
System.Drawing.Rectangle bounds = line.Line;
Console.WriteLine($"x={bounds.X}, y={bounds.Y}: {line.TextInLine}");
}Pengecualian
AsposeOcr.Recognize(OcrInput) memvalidasi masukan sebelum menjalankan pengenalan:
| Condition | Exception |
|---|---|
input adalah null | ArgumentNullException |
input’s InputType bukan SingleImage atau PDF | NotSupportedException |
Jalur yang ditambahkan melalui OcrInput.Add() tidak ada di disk | FileNotFoundException |
Pemeriksaan ini dijalankan sebelum inferensi model apa pun, sehingga masukan yang buruk gagal segera alih-alih setelah proses pengenalan sebagian.
Tips dan Praktik Terbaik
OcrOutputkosong (Count == 0) jikaOcrInputtidak memiliki file yang ditambahkan — periksaCountsebelum pengindeksan.RecognitionResult.LinesResultberada di dalamRecognitionResult; nama tipe tingkat atasLinesResultsaja tidak dapat diresolusikan di luar nesting tersebut.
Masalah Umum
| Masalah | Penyebab | Perbaiki |
|---|---|---|
ArgumentNullException pada Recognize() | null diberikan alih-alih OcrInput | Selalu buat OcrInput sebelum memanggil Recognize() |
NotSupportedException pada Recognize() | OcrInput dibuat dengan tipe input selain SingleImage/PDF | Hanya InputType.SingleImage dan InputType.PDF yang valid |
FileNotFoundException pada Recognize() | Jalur dalam antrian tidak ada | Validasi jalur file sebelum memanggil OcrInput.Add() |
FAQ
Apakah RecognitionResult.LinesResult merupakan kelas tingkat atasnya sendiri?
Tidak — ia berada di dalam RecognitionResult. Referensikan sebagai RecognitionResult.LinesResult.
Apakah OcrOutput menjamin urutan halaman untuk PDF?
Ya — untuk InputType.PDF, OcrOutput mengembalikan satu RecognitionResult per halaman dalam urutan sumber.
Apa yang terjadi jika saya memanggil Recognize() dengan OcrInput yang kosong?
Ia mengembalikan OcrOutput dengan Count == 0 alih-alih melempar.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
AsposeOcr.Recognize(OcrInput) | Memvalidasi dan mengenali; melempar ArgumentNullException, NotSupportedException, atau FileNotFoundException pada input yang tidak valid |
OcrInput.OcrInput(InputType) | Membangun kontainer input untuk satu tipe input |
OcrInput.Add(string) | Mengantri jalur file |
OcrInput.Dispose() | Melepaskan sumber daya (melalui IDisposable) |
OcrOutput | List<RecognitionResult> dikembalikan oleh Recognize() |
RecognitionResult.RecognitionText | Teks yang dikenali sepenuhnya untuk satu gambar/halaman |
RecognitionResult.RecognitionLinesResult | List<RecognitionResult.LinesResult> |
RecognitionResult.LinesResult.TextInLine | Teks yang dikenali untuk satu baris |
RecognitionResult.LinesResult.Line | System.Drawing.Rectangle kotak pembatas untuk satu baris |