ドキュメント分割のためのスクリプトの作成
ABBYY FineReader Server 14 により、スクリプトを用いてドキュメントの分割を設定できます。 このスクリプトは、内蔵ドキュメントの分割に追加して実行されます:まず、選択した方法で、ドキュメント分割が実行され、その後スクリプトがトリガされます。 従って、スクリプトは、認識されたテキストやバーコードを使用して、選択した分割ルールの調整や強化で使用することができます。
このスクリプトは、それぞれの認識済みページで実行されます。従って、ドキュメントの分割を、2 ページの比較結果として行うことはできません。 ドキュメント分割スクリプトで、ページ内容とプロパティに基づいて新規ドキュメントの始まりを設定し、削除するページをマークし(例えば分割ページまたは空白ページである場合)、ジョブを破棄することなどができます。
重要事項!ドキュメント分割スクリプトは、処理ステーションでトリガされます。 このため、スクリプトが共有リソースで適切に動作する必要があり、リソースへのアクセスに必要な権限を持つユーザーアカウントで処理ステーションを実行する必要があります。
スクリプトを作成して利用するには、以下の操作を行ってください。
- 3. ドキュメント分割 ダイアログボックスのワークフローのプロパティタブを開きます。
- 内蔵ドキュメント分割方法のいずれかを選択し(デフォルト値とはジョブごとに一つのドキュメントを作成)、スクリプト....をクリックします。
- 表示される スクリプトエディタ ダイアログボックスで、スクリプト言語を選択し、スクリプトテキストを入力します。 参照の「this」又は「Me」は、RecognizedPage オブジェクトを指しています。
- 確認 ボタンをクリックしてスクリプトをチェックします。 OKをクリックしてスクリプトを保存します。
重要事項!ページが複数あるドキュメントを処理するとき、プログラムは各文書をいくつかの部分に分割し、それぞれ別々のプロセッサコアで同時に処理します。各部分のページ数は、PagesSlice 属性で設定されます(デフォルト設定は 25 です)。
- PagesSlice = 25 になるようにワークフローのプロパティを変更したり、XML ファイルから設定を読み込んだりして、ワークフローにドキュメント分割スクリプトを追加すると、ドキュメントは分割されず、PagesSlice は自動的に -1 に設定されます。PagesSlice 属性の値が 25 以外の場合は、変わりません。
- PagesSlice = -1 になるようにワークフローのプロパティを変更するか、XML ファイルから設定を読み込んで、ワークフローにドキュメント分割スクリプトがない場合、PagesSlice 属性は自動的に設定され、ドキュメントは 25 ページの部分に分割されます。
スクリプトの使用詳細については、ABBYY FineReader Server でのスクリプト使用方法を参照してください。
サンプル
下に提供されているサンプルスクリプトは JScript で書かれており、分割ページを使用して 3 つのグループのドキュメント(記事、履歴書、パンフレット)間で認識されたページを分配することを意図しています。認識されたページのテキストが設定されたテキストに対応する場合、関連するカスタムテキストがこのページに割り当てられ(RecognizedPage オブジェクトの CustomText プロパティ)、そのページはドキュメントの最初のページ(IsStartingPage プロパティ)としてマークされ、削除のためにマークされます(IsForDeletion プロパティ)。したがって、スクリプトを実行すると、ドキュメントは 3 つのグループに分けられ、分割ページは削除されます。
注:このスクリプトは Scripting Demo シナリオの処理のデモで使用され、その設定は次のフォルダの ScriptingDemoWorkflow.xml にあります:サンプル (スタート > プログラム > ABBYY FineReader Server 14 > 例)。
var pageText = Text;
var isArticle = pageText == "Separator sheet Document type: article";
var isResume = pageText == "Separator sheet Document type: resume";
var isBrochure = pageText == "Separator sheet Document type: brochure";
if( isArticle ) {
CustomText = "Article";
} else if( isResume ) {
CustomText = "Resume";
} else if( isBrochure ) {
CustomText = "Brochure";
}
if( isArticle || isResume || isBrochure ) {
IsStartingPage = true;
IsForDeletion = true;
}
こちらも参照してください:
26.03.2024 13:49:51