サポートされるスクリプト言語
ABBYY FineReader Serverは以下のいずれかの言語で書かれたスクリプトをサポートします:
- JScript®
- VBScript
- C# .Net
- Visual Basic .Net
- JScript .Net
注:.NETスクリプトを使用するには、ABBYY FineReader Server 14 Update 7以降が必要です。
コンテクストオブジェクトは、異なるスクリプト言語で異なる方法でアクセスされます。
- JScriptでは、コンテクストオブジェクトはキーワードthisでアクセスできます。(プロパティまたはコンテクストオブジェクトのコールメソッドに名前でアクセスする場合、キーワードthis は省略できます。)
- VBScriptでは、コンテクストオブジェクトはキーワードMeでアクセスできます。
- .NET言語では、コンテクストオブジェクトの名前は スクリプトのタイプにより異なります。例えば、Separationスクリプトの場合、pageを使用する必要があります。
コンテクストオブジェクトの名前とそのインターフェースはArgumentsライン(Script Editorダイアログボックスのツールバーの下)に表示されます。
以下の表はプロパティとSeparationスクリプトのコンテクストオブジェクトのコールメソッドにアクセスする方法を示します。
言語: | プロパティにアクセスする | コールメソッド |
---|---|---|
C# | page.Width | page.RemoveAllBlocks() |
Visual Basic .Net | page.Width | page.RemoveAllBlocks() |
JScript .Net | page.Width | page.RemoveAllBlocks() |
JScript | this.Width または Width | this.RemoveAllBlocks() または RemoveAllBlocks() |
VBScript | Me.Width | Me.RemoveAllBlocks() |
JScript および VBScript
JScrpitとVBScriptはアクティブスクリプト テクノロジーを使用します。これは、OLE自動化 (COM) に基づきます。
ABBYY FineReader Server がインストールされているフォルダのBinサブフォルダにあるFRS.ScriptingObjects.dllモジュールのリソースで、JScriptとVBScriptスクリプトで使用されるインターフェースと列挙の定義が記載されたタイプのライブラリを見つけられます。このライブラリを表示するには、Windows SDKとともに提供されているOLE/COM Object Viewerユーティリティを使用します。タイプライブラリに含まれるタイプは、このガイドで詳細に説明されます。
JScript または VBScriptスクリプトのボディは、キーワードthis (JScriptの場合) または Me (VBScriptの場合) を使ってコンテクストオブジェクトにアクセスできる機能のボディとして解釈されます。
.NET
C#、Visual Basic .NET、JScript .NETスクリプトは.NET COM Interopテクノロジーを使ってタイプライブラリで定義されたタイプと相互作用します。
FRS.ScriptingObjects.Interop.dllと言う名前の対応する相互運用アセンブリも、ABBYY FineReader Serverがインストールされたフォルダの Binサブフォルダにあります。
このアセンブリのすべてのタイプ(インターフェースと列挙)はFineReaderServer.ScriptingObjects.Interop 名前空間で宣言されます。
.NETスクリプトのボディは、コンテクストオブジェクトを唯一のパラメータとして受け付ける静的メソッドのボディとして解釈され、以下のC#の例に示されるとおりに宣言されます(このサンプルコードは、Separationスクリプトのために使用することが意図されています):
// 相互運用機能アセンブリからのタイプへの参照は、スクリプト本体で完全に修飾する必要はありません
using FineReaderServer.ScriptingObjects.Interop;
public class Main
{
// コンテキストオブジェクトは唯一のパラメーター
public static void Execute(IRecognizedPage page)
{
// スクリプトボディ
}
}
3/26/2024 1:49:51 PM