ApplyOCRTextLayerEx

OCR、テキスト、ドキュメント編集

説明

プロバイダー中立の OCR JSON を検証し、別バッファで不可視テキストを準備して、所有の検索可能テキストレイヤーを 1 ページにコミットします

構文

Delphi

Function TPDFlib.ApplyOCRTextLayerEx(Page: Integer; Const ResultJSON,
  FontName: WideString; MinConfidence: Double; Options: Integer): Integer;

ActiveX

Function PDFlib::ApplyOCRTextLayerEx(Page As Long, ResultJSON As String,
  FontName As String, MinConfidence As Double, Options As Long) As Long

DLL

int DLApplyOCRTextLayerEx(int InstanceID, int Page, const wchar_t* ResultJSON,
  const wchar_t* FontName, double MinConfidence, int Options);
int DLApplyOCRTextLayerExA(int InstanceID, int Page, const char* ResultJSON,
  const char* FontName, double MinConfidence, int Options);

パラメータ

Page1 から始まる対象ページ
ResultJSONApplyOCRTextLayer で説明されるバージョン 1 のスキーマ。検証済みのベースライン端点や階層 ID を含めてもかまいません
FontName埋め込み可能な TrueType フォント。インストール済みフォントからのフォールバック選択には空文字列を指定します
MinConfidence0~1 の包含単語信頼度しきい値
Options後述のレイヤーポリシーのビットごとの組み合わせ。0 は新しい所有レイヤーの追加です

オプション

1 — PDF_OCR_SKIP_EXISTING_TEXT保持されている非所有コンテンツストリームや呼び出された Form XObject にテキスト (不可視テキストを含む) がある場合、OCR を適用せずに成功を返します
2 — PDF_OCR_REPLACE_OWNED_LAYERライブラリの OCR マーカーと完全に一致する既存レイヤーをすべて置き換えます。所有 OCR レイヤーがなければ追加します
3非所有テキストのあるページはスキップしつつ、所有レイヤーだけの OCR ページは置換を許します

戻り値

1レイヤーがコミットされたか、既存テキストポリシーでページがスキップされたか、信頼度しきい値を満たす単語がありませんでした
0入力、ジオメトリ、オプション、フォントエンコーディング、レイヤー書き込みのいずれかが失敗しました

備考

未知のオプションビットは拒否されます

ソース座標は描画画像の左上原点と選択された描画ボックス基準です。ページの回転と 0 でないボックスオフセットは、生の PDF ユーザー空間へ写像し直されます

オプションの baseline 配列はソース単位の [x1, y1, x2, y2] を含み、テキスト方向とアドバンスを定義します。完全なベースラインを持つ場合、0 でない textAngle も同時に持つことはできません

すべての単語境界とベースラインは、信頼度フィルタリングの前に検査されます。無効な低信頼度の単語があれば、その時点で操作は失敗します

フォントのフィッティングと欠落グリフの処理は、新しいコンテンツレイヤーのコミット前に完了します。中途半端に描画された OCR 単語が旧レイヤーを置き換えることはありません

所有 OCR レイヤーと見なされるのは、/PDFlibOCROwner /PDFlibPas、/PDFlibOCRType /InvisibleText、/PDFlibOCRVersion 1 の 3 つのフィールドすべてが正確に一致するストリームだけです

置換では新しい contents 配列と新しいストリームが作られ、非所有コンテンツと兄弟ページが使うストリームは保持されます

OCR レイヤーは描画モード 3 と分離されたグラフィックス状態を使います。配置では、単語マトリクスを適用する前に、保持コンテンツの現在の変換マトリクスをキャンセルします

受け付けられた空の結果は旧レイヤーをそのまま残します。empty、skipped、appended、replaced の区別は GetOCRDiagnosticsJSON で確認してください

検索可能性と可視ピクセルが変わらないことは、ドキュメントの保存と再読み込み後に検証されます

関連項目

OCRPageEx、OCRDocumentEx、ConfigureTesseractOCR、GetOCRDiagnosticsJSON、LastOCRError