文書定義: ファイル名を使って文書定義を強制・自動的に割り当てたい

質問

ファイル名が分かった時点でどの文書定義を割り当てるかが分かっている場合があるかもしれません。

その場合は、そのファイル名を使って、文書定義を強制的に割り当てることが可能ですか。

回答

ファイル名を使って、文書定義を強制的に割り当てる方法の1例をご紹介します。

条件:

同一 Batch 内で 入力する画像の内容に関わらず、ファイル名のみで自動的に意図した文書定義をわりあてます。

ご注意

  • この方法は、半構造化文書、つまりFlexiLayoutが用いられていることが必須条件となります。
  • FlexiLayoutはどのような内容でも構いません。

下図のような文書定義をもつ 文書定義 Project があるとします。

mceclip1.png

次のようにファイル名だけで、文書定義を割り当てたいとします。 

インポートするファイル名 ファイル名だけで一致させたい文書定義
InvoiceSample01.pdf InvoiceSample01
InvoiceSample02.pdf InvoiceSample02
InvoiceSample03.pdf InvoiceSample03

 

各文書定義は同じ内容*です。ただ、全てFlexiLayoutを適用*しています。

*実際にこの方法を使う場合は、異なる文書定義でも、使用できます。ただ、FlexiLayoutは必ず設定されている必要があります

メニューの「プロジェクト」 > 「プロジェクトプロパティ」から...

mceclip2.png

「イベントハンドラ」タブの「照合前」イベント > [スクリプトの編集] を開き、

mceclip3.png

下図のようなスクリプトを記述します。(例はC# .NET)

mceclip4.png

// C# .NET スクリプト
using System;

for( int i=0 ; i < Document.Pages.Count ; i++ ){

// Full FileName
string imageSourceFileSubPath = Document.Pages[PageIndex].ImageSourceFileSubPath;

// Detect Extension
int index = imageSourceFileSubPath.LastIndexOf(".");

string inputFileName = "";

if( index!=-1 )
{

inputFileName = imageSourceFileSubPath;

// Get FileName
inputFileName = imageSourceFileSubPath.Substring( 0, index );

}

try{
if( inputFileName=="InvoiceSample01" )
{
Matching.DefinitionsList = "InvoiceSample01\\Document Section 1";
Matching.ForceMatch = true;
}
else if( inputFileName=="InvoiceSample02" )
{
Matching.DefinitionsList = "InvoiceSample02\\Document Section 1";
Matching.ForceMatch = true;
}
else if( inputFileName=="InvoiceSample03" )
{
Matching.DefinitionsList = "InvoiceSample03\\Document Section 1";
Matching.ForceMatch = true;
}


}
catch( Exception e )
{
//System.Windows.Forms.MessageBox.Show("e: " + e );
}

}

上のスクリプトで重要な FlexiCapture 独自のオブジェクトなどについては、下記を参照ください。

上図の設定を行うと、文書定義、FlexiLayoutの内容に関わらず、ファイル名だけで、文書には強制的に指定した文書定義が割り当てられます。

実際、全く同じ内容の文書定義だが、それぞれ、別の文書定義がファイル名を元に割り当てられる:

(異なる文書定義でも可能。ただし、FlexiLayoutの設定が必須)

mceclip0.png

詳しくは下のリンクからご入手できるサンプルプロジェクトをご覧ください。

*ご覧になるには、バージョン12.0.2.3118以上の FlexiCaptureが必要です。

他にご質問がございましたら、リクエストを送信してください

コメント

0件のコメント

サインインしてコメントを残してください。