既存の業務システム&ワークフローに電子文書化ソリューションを組み込める「CapturePerfect SDK」プログラミング編(2/5 ページ)

» 2006年05月17日 00時00分 公開
[本田雅一,ITmedia]
PR

 基本的な処理の流れは

  1. ライブラリをロード
  2. ライブラリの初期化
  3. スキャナ名の選択・設定
  4. スキャンパラメータの設定
  5. スキャン処理の実行(必要ならば4と5を繰り返す)
  6. ライブラリの解放

 となる。実際のプログラムとしては、1〜3および6に関しては、決まり文句の呼び出しを行うだけで良い上、サンプルプログラムのコードをほぼそのまま再利用することも可能だ。あとはパラメータとスキャン処理の実行を、カスタムアプリケーションの処理フローに合わせて行うだけである。

 スキャン機能の実行も、実際には自ソフトウェア内で処理すべきことはほとんどない。前述したように、CapturePerfect SDKはCapturePerfect 3.0が持っている機能をAPIとして解放するものである。CapturePerfect 3.0上でパラメータを設定し、各種機能をツールバーやメニューから選択して実行する。これと同じことを、VB上のプログラムで順に指示していくだけでいい。

 具体的には

  • スキャンして、画像データ、バーコード文字列、OCR文字列を取得する。
  • スキャンして、画像データをファイルに保存する。
  • スキャンして、画像データを既存ファイルの最終ページに追加する。
  • スキャンして、画像データを既存ファイルの任意ページに挿入、または、置き換えする。
  • スキャンして、画像データをパスワード付きでファイルに保存する。
  • プロファイルを作成する。
  • スキャンパラメータを取得・変更する。
  • スキャナを選択・指定する。
  • イメージを描画する。

 以上、9種類の機能呼び出しの組み合わせでアプリケーションを構築していくわけだ。

サンプルプログラムの構成を知る

 では、具体的にサンプルプログラムの中身を見ていくことにしよう。

 サンプルプログラムには3つのコードが標準モジュールとしてロードされている。

  • callback.bas
  • CappeAPI.bas
  • global.bas

 このうちcallback.basとCappeAPI.basには、CapturePerfect SDKで使われるAPI、構造体、定数などの宣言、必須の関数などが収められている。自作アプリケーションを作成する場合は、このサンプルアプリケーションをテンプレートとして利用し、改造していくのがいいが、スクラッチから組む場合でも、これら2つはカスタムアプリケーションを作成する際にも必ずプロジェクトに組み込むようにしておき、リストをプリントアウトしておくといい。

 global.basの中にはエラー名表示ルーチン(ShowErrorMessage)、エラー名取得ルーチン(GetErrorName)が含まれており、自アプリケーション内で利用すると便利だ。

 それ以外に関しては、メインフォーム内のコードに有益な情報が多数ある。以下、順に見ていこう。

初期化


 メインフォームのロード時に初期化を行う。

Private Sub Form_Load()
    g_DriverLoaded = False
    g_Overwrite = False
    g_ScanContinue = True
    g_ShowDriverDialog = True
    g_StartPage = 0
    g_Profile = App.Path & "\profile.ini"
    g_UserPassword = ""
    g_OwnerPassword = ""
    g_AuthorityFlags = 0
    g_ScannerName = ""
    g_dwParamUI = 0
    g_ImageBuffer = 0
    g_Prescanning = False
    g_Scanning = False
    g_Cancel = False
    g_ParamUI = False
    ChDir App.Path
    Dim rtn As Long
    rtn = ShowErrorMessage(CPAPIInitialize(Me.hWnd))
    If rtn = CPAPI_ERROR_SUCCESS Then
        rtn = LoadDriver()
    End If
End Sub

 ここではプログラム内部で使っているステータスフラグを初期化した上で、CapturePerfect SDKの初期化を呼び出しているのがわかるだろう。初期化の結果次第でエラー表示を行うよう、ShowErrorMessageのパラメータの形で呼んでいる。

 初期化が完了するとLoadDriverを呼び出して、ドライバの初期パラメータなどを設定する。LoadDriverルーチンは、メインフォームのGeneralパートに置かれている。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:キヤノンマーケティングジャパン 株式会社
制作:ITmedia +D 編集部/掲載内容有効期限:2006年6月19日