VB 開発向け プリンタドライバ・ビューア プログ …サンプル\VB6 SP6\PrtCli2\...

23
VB 開発向け プリンタドライバ・ビューア プログラミング&リファレンス

Transcript of VB 開発向け プリンタドライバ・ビューア プログ …サンプル\VB6 SP6\PrtCli2\...

VB 開発向け

プリンタドライバ・ビューア

プログラミング&リファレンス

1

はじめに

本書は、 STARFAX Server SDK のププリリンンタタドドラライイババとビビュューーアアププロロググララムムの仕様のご説明と、それらを

利用するユーザープログラムの作成方法をご説明しています。

なお、本書は、Visual Basic 6.0(※) を開発ツールとしてプログラムを作成する方を対象としています。

本書をお読みになる前に、 「STARFAX Server SDK セットアップマニュアル」 をお読みいただき、STARFAX

Server SDKの動作をご理解していただくようお願いいたします。

※ VB.NET2003 向けのサンプルを別途用意しています。これは、VB6.0 のサンプルプログラムをコンバ

ートし、単純なコンバートでは問題のある箇所に修正を加えたものです。

なお、本書中の記述で VB.NET2003 サンプルプログラムの収録フォルダについては、「VB6 SP6」を

「VB.net 2003」と読み替えてください。

■ ご注意

本書に登場するシステム名・製品名は、一般に開発メーカーの登録商標です。

本書の構成について

本書は、次のような内容で構成されています。

● 第Ⅰ章 ユーザープログラムの開発について

● 第Ⅱ章 サンプルプログラム

● 第Ⅲ章 リファレンス

まずは、第Ⅰ章に開発の手順等をご説明していますので、 第Ⅰ章をご覧になってから第Ⅱ章に

お進み下さい。

第Ⅲ章 リファレンス には、ププリリンンタタドドラライイババとビビュューーアアププロロググララムムの仕様についてご説明しています。

2

目次

はじめに ・・・・・・・・ 1

本書の構成について ・・・・・・・・ 1

第Ⅰ章 ユーザープログラムの開発について

1.1 開発の手順 ・・・・・・・・ 4

第Ⅱ章 サンプルプログラム

2.1 印刷結果のFAX送信 … ( PrtCli.exe ) ・・・・・・・・ 6

2.1.1 印刷結果を得る ・・・・・・・・ 8

2.1.2 印刷結果を表示する ・・・・・・・・ 10

2.2 TIFFファイルの作成とFAX送信 … ( PrtCli2.exe ) ・・・・・・・・ 12

2.2.1 印刷結果を得る ・・・・・・・・ 13

2.2.2 印刷結果を表示する ・・・・・・・・ 19

第Ⅲ章 リファレンス

3.1 プリンタドライバの仕様 ・・・・・・・・ 22

3.2 ビューアプログラムの仕様 ・・・・・・・・ 23

3

第Ⅰ章

ユーザープログラムの開発について

ユーザープログラムの開発の手順についてご説明しています。

1.1 開発の手順

4

1.1 開発の手順

STARFAX Server SDK を操作するユーザープログラムは、 STARFAX Server SDK が動作していることが前

提です。従って、ユーザープログラム開発を行う前に STARFAX Server SDK 本体のインストールを行い、

その操作を簡単に理解しておく必要があります。

それらを考慮して、以下の手順でユーザープログラム開発を行うことをお奨めします。

① 「STARFAX Server SDK セットアップマニュアル」 をお読みください。

● STARFAX Server SDK 本体のインストールを行って下さい。

● 基本的な操作を理解してください。

② 第Ⅱ章 サンプルプログラム を学習してください。

● サンプルプログラムは2種類用意しています。

◇ ワード・エクセル等のアプリケーションからFAX送信したい場合

→ 印刷結果のFAX送信 ( PrtCli.exe )

ワード・エクセル等のアプリケーションから手動で印刷後、プリンタドライバからユーザー

プログラムが起動されます。

◇ ユーザープログラムからFAX原稿を作成して、FAX送信したい場合

→ TIFFファイルの作成とFAX送信 ( PrtCli2.exe )

ユーザープログラムがプリンタドライバを制御して印刷結果(TIFFファイル)を取得します。

● 各サンプルプログラムの説明は次の各項をご覧ください。

2.1 印刷結果のFAX送信 … ( PrtCli.exe )

2.2 TIFFファイルの作成とFAX送信 … ( PrtCli2.exe )

③ ユーザープログラムを作成してください。

● ①~② を踏まえて、ユーザープログラムの作成・テストを行って下さい。

5

第Ⅱ章

サンプルプログラム

プリンタドライバとビューアプログラムを利用するサンプルプログラムです。

2.1 印刷結果のFAX送信 … ( PrtCli.exe )

2.2 TIFFファイルの作成とFAX送信 … ( PrtCli2.exe )

6

2.1 印刷結果のFAX送信 … ( PrtCli.exe )

印刷結果のFAX送信プログラム【PrtCli.exe】 は、印刷結果の表示とFAX送信を行うサンプルプ

ログラムです。本CD-ROMの以下の位置に入っています。ワード・エクセル等のアプリケーションから手

動で印刷後、プリンタドライバからユーザープログラムが起動されます。

\サンプル\VB6 SP6\PrtCli.exe ... 印刷結果のFAX送信プログラム

\サンプル\VB6 SP6\PrtCli\ ... 印刷結果のFAXプログラム 開発プロジェクト

主な、仕様、及び、操作方法は以下の通りです。

① STARFAX Server SDK を起動します。

(STARFAX Server SDKの起動は、「STARFAX Server SDKセットアップアニュアル」 P21参照)

② 以下のププリリンンタタドドラライイババ の動作に関するレジストリを指定します。

● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\OutFolder … ファイル出力フォルダ

文字列項目で、任意の作業フォルダを作成して指定します。

( 例: "C:\Program Files\SfCs\Temp" )

● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\DocName …ドキュメント名

文字列項目で、 このサンプルプログラムの場合、任意の文字列を指定します。

( 例: "SFCSPRN" )

● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\ExecFlag …プログラム実行フラグ

DWORD項目で、 1 を指定します。

● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\ExecPath …プログラムパス

文字列項目で、 PrtCli.exe をフルパスで指定します。

( 例: "C:\Program Files\SfCs\PrtCli.exe" )

● HKEY_LOCAL_MACHINE\Software\MEGASOFT\SfCs\ExecParam …追加パラメータ

文字列項目で、 何も指定していない状態( "" ) を設定します。

(詳細は 3.1 プリンタドライバ の仕様 をご覧下さい。)

③ 印刷可能な適当なアプリケーション(ワード等)から プリンタ名 "MEGASOFT STARFAX Engine"

に対して印刷を行うと 印刷結果のFAX送信プログラム【PrtCli.exe】 が起動して、

印刷結果が送信する内容として指定された状態になります。

7

④ 表示(V)ボタンを押して、印刷結果の内容を確認します。

⑤ FAX送信(S)ボタンを押して、FAX送信を行います。 (これでプログラムは終了します。)

この後、FAX送信が正常に動作していない場合は、 SSTTAARRFFAAXX SSeerrvveerr SSDDKK ロロググ管管理理ププロロググララムム で

イベントの内容を確認して下さい。

(FAX送信は、 STARFAX OCX の FAX送信コントロール [ SFCSSendFax ] を使用しています。

詳細は、 「STARFAX Server SDK VB 開発向け OCX リファレンスマニュアル」 の 2.1 FAX 送信

コントロール [ SFCSSendFax ] をご覧下さい。)

8

2.1 印刷結果のFAX送信 … ( PrtCli.exe )

2.1.1 印刷結果を得る

ププリリンンタタドドラライイババで印刷した結果を得る方法を、印刷結果のFAX送信プログラム

開発プロジェクトのソースファイルを元にご説明します。

印刷結果のFAX送信プログラム【PrtCli.exe】 の仕様、および操作方法については、2.1 印刷

結果のFAX送信 をご覧下さい。

開発プロジェクトは、本CD-ROMの以下の位置に入っています。

\サンプル\VB6 SP6\PrtCli\ ... 印刷結果のFAX送信プログラム 開発プロジェクト

■ 印刷結果を得る

ププリリンンタタドドラライイババ が印刷終了時に、印刷結果(TIFFファイル) をパラメータとして、

ユーザープログラムを起動することにより、 ユーザープログラム は 印刷結果を得ることができます。

そしてププリリンンタタドドラライイババ が起動するプログラムは、レジストリに登録します。

(レジストリの設定の詳細は 3.1 プリンタドライバ の仕様 をご覧下さい。)

9

Form1.frm :

Command() でププリリンンタタドドラライイババ より 渡された 印刷結果(TIFFファイル) を取得しています。

10

2.1 印刷結果のFAX送信 … ( PrtCli.exe )

2.1.2 印刷結果を表示する

印刷結果(TIFFファイル)を表示する方法を、印刷結果のFAX送信プログラム 開発プロジェクト

のソースファイルを元にご説明します。

印刷結果のFAX送信プログラム【PrtCli.exe】 の仕様、および操作方法については、2.1 印刷

結果のFAX送信 をご覧下さい。

開発プロジェクトは、本CD-ROMの以下の位置に入っています。

\サンプル\VB6 SP6\PrtCli\ ... 印刷結果のFAX送信プログラム 開発プロジェクト

■ 印刷結果を表示する

ビビュューーアアププロロググララムム 起起動動時時にに、、コマンドラインパラメータに表示させたいファイルを" 囲みで指定

して起動することにより、印刷結果(TIFFファイル)を表示することができます。

(起動時のコマンドラインパラメータの詳細は 3.2 ビューアプログラム の仕様 をご覧下さい。)

11

Form1.frm :

'*************************************************************

' 表示ボタン: クリック

'*************************************************************

Private Sub CommandVIEW_Click()

Dim strViewExeName, strViewComand, strViewPath As String

Dim strInstall As String

'/////////////////////////////////////////////////////////////

'// ビューア呼び出し

If SFCSEnv1.GetSfcsFolder(strInstall) = SFCSENV_SUCCESS Then

strViewExeName = "\SfCsVw.exe"

strViewComand = " /Tビューア "

strViewPath = Chr$(34) & strInstall & strViewExeName & Chr$(34) & strViewComand & Chr$(34) & s_strFileName & Chr$(34)

Call Shell(strViewPath, vbNormalFocus)

End If

End Sub

12

2.2 TIFFファイルの作成とFAX送信 … ( PrtCli2.exe )

TIFFファイルのFAX送信プログラム【PrtCli2.exe】 は、TIFFファイルの作成 と FAX送信を行うサ

ンプルプログラムです。本CD-ROMの以下の位置に入っています。ユーザープログラムがプリンタドライ

バを制御して印刷結果(TIFFファイル)を取得します。

\サンプル\VB6 SP6\PrtCli2.exe ... TIFFファイルのFAX送信プログラム

\サンプル\VB6 SP6\PrtCli2\ ... TIFFファイルのFAX送信プログラム 開発プロジェクト

主な、仕様、及び、操作方法は以下の通りです。

① STARFAX Server SDK を起動します。

(STARFAX Server SDKの起動は、「STARFAX Server SDKセットアップアニュアル」 P21参照)

② PrtCli2.exeを起動します。

③ 「操作1」の下欄にFAX原稿に表示させる文字を入力します。

④ 「①FAX原稿の作成」ボタンをクリックします。

(作成するファイル名を任意指定したい場合は、[指定]ラジオボタンをクリックして、ファイル

名を入力してください。)

⑤ 「②FAX 原稿の表示」ボタンをクリックすると、作成された FAX 原稿がビューアで表示されま

す。

⑥ 「操作3」の下欄に送信先のFAX番号を入力します。

⑦ 「FAX送信」ボタンをクリックします。

この後、FAX送信が正常に動作していない場合は、 SSTTAARRFFAAXX ロロググ管管理理ププロロググララムム でイベント

の内容を確認して下さい。

(FAX送信は、 STARFAX OCX の FAX送信コントロール [ SFCSSendFax ] を使用しています。

詳細は、 「STARFAX Server SDK VB開発向け OCX リファレンスマニュアル」 の 2.1 FAX送

信コントロール [ SFCSSendFax ] をご覧下さい。)

13

2.2 TIFFファイルの作成とFAX送信 … ( PrtCli2.exe )

2.2.1 印刷結果を得る

ププリリンンタタドドラライイババで印刷した結果を得る方法を、印刷結果のFAX送信プログラム

開発プロジェクトのソースファイルを元にご説明します。

TIFF ファイルの作成とFAX送信プログラム【PrtCli2.exe】 の仕様、および操作方法については、

2.2 TIFFファイルの作成とFAX送信 をご覧下さい。

開発プロジェクトは、本CD-ROMの以下の位置に入っています。

\サンプル\VB6 SP6\PrtCli2\ ... TIFFファイルの作成とFAX送信プログラム 開発プロジェクト

■ 印刷結果を得る

ププリリンンタタドドラライイババ が印刷終了時に、印刷結果(TIFFファイル) を「ファイル出力フォルダ」に出力す

るので、このフォルダを参照することで、ユーザープログラム は印刷結果を得ることができます。

そして、それらの制御を STARFAX OCX の FAX送信コントロール [ SFCSSendFax ] が行います。

14

Form1.frm :

'*************************************************************

' [① FAX原稿の作成]ボタン: クリック

'*************************************************************

Private Sub CommandPRINT_Click()

Dim iRet

Dim objPr As Object

Dim iPNum As Integer

Dim iPages As Integer

Dim lPageWidth As Long

Dim lPageHeight As Long

Dim lPageXres As Long

Dim lPageYres As Long

Dim iColor As Integer

Dim strNAMESET As String

Dim strExist As String

Dim iRes As Integer

Dim lRet As Long

'-------------------------------------------------------------

' 作成するTIFFファイル名の確認

strNAMESET = ""

' TIFFファイル名 ( 0:自動, 1:指定 )

If s_lTiffFileNameMode = 1 Then

strNAMESET = TextNAMESET.Text

If strNAMESET = "" Then

MsgBox "TIFFファイル名を指定してください", vbCritical, s_cstTITLE

Exit Sub

End If

strNAMESET = strNAMESET + ".TIF"

strExist = s_strPgmData + "\" + strNAMESET

If Dir(strExist) <> "" Then

iRes = MsgBox("指定されたTIFFファイルは既に存在します。" & vbCrLf & "上書きしてよろしいですか?", vbQuestion

+ vbOKCancel, s_cstTITLE)

If iRes <> vbOK Then

Exit Sub

End If

End If

End If

15

'-------------------------------------------------------------

' FAX原稿( TIFFファイル )のクリア

If s_strTIFFFILE <> "" Then

Kill s_strTIFFFILE

s_strTIFFFILE = ""

TextFILE.Text = ""

End If

'-------------------------------------------------------------

' STARFAX Server SDK 印刷初期処理

iRet = False

For Each objPr In Printers

If objPr.DeviceName = SFCSPRT_PRINTERNAME Then

Set Printer = objPr

iRet = True

Exit For

End If

Next

If iRet = False Then

MsgBox "プリンタドライバが見つかりません", vbCritical, s_cstTITLE

Exit Sub

End If

'/////////////////////////////////////////////////////////////

'// (1) FAX送信用のTIFFファイルの作成準備

'//

'// Function SetupPrinter( Folder As String,

'// FileName As String ) as Long

'//

lRet = SFCSSendFax1.SetupPrinter(s_strPgmData, strNAMESET)

If lRet <> SFCSPRINTER_SUCCESS Then

If lRet = SFCSPRINTER_ERR_PARAM_Folder Then

MsgBox "パラメータエラー: TIFFファイルを作成するフォルダが指定されていません。", vbExclamation, s_cstTITLE

End If

If lRet = SFCSPRINTER_ERR_PARAM_NoFolder Then

MsgBox "パラメータエラー: TIFFファイルを作成するフォルダが存在しません。", vbExclamation, s_cstTITLE

End If

If lRet = SFCSPRINTER_ERR_REG_ExecFlag Then

MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "このメソッドを正常に動作させるには、プロ

16

グラム実行フラグを0にする必要があります。", vbExclamation, s_cstTITLE

End If

If lRet = SFCSPRINTER_ERR_REG_OutFolder Then

MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "このメソッドを正常に動作させるには、ファ

イル出力フォルダを指定する必要があります。", vbExclamation, s_cstTITLE

End If

If lRet = SFCSPRINTER_ERR_REG_NoOutFolder Then

MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "ファイル出力フォルダに指定されているフォ

ルダが存在しません。", vbExclamation, s_cstTITLE

End If

If lRet = SFCSPRINTER_ERR_REG_SameOutFolder Then

MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "ファイル出力フォルダに指定されているフォ

ルダと" & vbCrLf & "TIFFファイルを作成するフォルダが同じです。", vbExclamation, s_cstTITLE

End If

If lRet = SFCSPRINTER_ERR_REG_ClsOutFolder Then

MsgBox "プリンタドライバ動作設定値(レジストリ)エラー:" & vbCrLf & "ファイル出力フォルダ内のクリアに失敗しま

した。", vbExclamation, s_cstTITLE

End If

Exit Sub

End If

DoEvents

MousePointer = ccHourglass ' 砂時計

~~~~~~~~~~~~~~~~~~~~~~~~~~~

ここでユーザープログラムからププリリンンタタドドラライイババへの印刷を行います。

'-------------------------------------------------------------

' サンプル印刷

Call PROC_SamplePrint(Printer.hdc, TextTEXT.Text)

~~~~~~~~~~~~~~~~~~~~~~~~~~~

MousePointer = ccDefault ' 標準

Set objPr = Nothing

'-------------------------------------------------------------

' STARFAX Server SDK 印刷: ファイル出力フォルダ内の印刷完了ファイルの取得

17

Dim iRetry As Long

Dim strGetFileName As String

Dim bGet As Boolean

MousePointer = ccHourglass ' 砂時計

bGet = False

For iRetry = 1 To 30

'/////////////////////////////////////////////////////////////

'// (2) FAX送信用のTIFFファイルの作成終了

'//

'// Function TerminatePrinter() as String

'//

strGetFileName = SFCSSendFax1.TerminatePrinter()

If strGetFileName = "NG" Then

MsgBox "SetupPrinterメソッドが呼ばれていない、または、正常に終了していません。", vbExclamation, s_cstTITLE

Exit For

Else

If strGetFileName <> "" Then

'-------------------------------------------------------------

' FAX原稿( TIFFファイル )の取得

s_strTIFFFILE = strGetFileName

TextFILE.Text = s_strTIFFFILE

bGet = True

Exit For

End If

End If

Sleep 2000

Next iRetry

MousePointer = ccDefault ' 標準

If bGet = False Then

MsgBox "印刷処理が失敗しました", vbCritical, s_cstTITLE

End If

End Sub

18

2.2 TIFFファイルの作成とFAX送信 … ( PrtCli2.exe )

2.2.2 印刷結果を表示する

印刷結果(TIFF ファイル)を表示する方法を、印刷結果のFAX送信プログラム 開発プロジェクトのソ

ースファイルを元にご説明します。

TIFFファイルの作成とFAX送信プログラム【PrtCli2.exe】 の仕様、および操作方法については、2.2

TIFFファイルの作成とFAX送信 をご覧下さい。

開発プロジェクトは、本CD-ROMの以下の位置に入っています。

\サンプル\VB6 SP6\PrtCli2\ ... TEFFファイルの作成とFAX送信プログラム 開発プロジェクト

■ 印刷結果を表示する

ビビュューーアアププロロググララムム 起起動動時時にに、、コマンドラインパラメータに表示させたい

ファイルを" 囲みで指定して起動することにより、印刷結果(TIFFファイル)を表示することが

できます。

(起動時のコマンドラインパラメータの詳細は 3.2ビューアプログラム の仕様 を

ご覧下さい。)

19

Form1.frm :

'*************************************************************

' [FAX原稿の表示]ボタン: クリック

'*************************************************************

Private Sub CommandVIEW_Click()

Dim strViewExeName, strViewComand, strViewPath As String

Dim strInstall As String

'/////////////////////////////////////////////////////////////

'// ビューア呼び出し

If s_strTIFFFILE <> "" Then

If SFCSEnv1.GetSfcsFolder(strInstall) = SFCSENV_SUCCESS Then

strViewExeName = "\SfCsVw.exe"

strViewComand = " /Tビューア "

strViewPath = Chr$(34) & strInstall & strViewExeName & Chr$(34) & strViewComand & Chr$(34) & s_strTIFFFILE &

Chr$(34)

Call Shell(strViewPath, vbNormalFocus)

End If

Else

MsgBox "[① FAX原稿の作成] を行ってください", vbExclamation, s_cstTITLE

End If

End Sub

20

第Ⅲ章

リファレンス

プリンタドライバとビューアプログラムの仕様について解説しています。

3.1プリンタドライバの仕様

3.2ビューアプログラムの仕様

21

3.1 プリンタドライバの仕様

ププリリンンタタドドラライイババの仕様について記述します。

■ プリンタ名

"MEGASOFT STARFAX Engine"

■ レジストリ 【 HKEY_LOCAL_MACHINE\\Software\\MEGASOFT\\SfCs 】

● "OutFolder" ... 文字列項目: ファイル出力フォルダ

● "DocName" ... 文字列項目: ドキュメント名

ファイル出力フォルダに以下のファイルを出力します。

ドキュメント名+アンダーバー+日付情報 ( [ドキュメント名]_YYYYMMDDHHMMSSMMM.tif )

● "ExecFlag" ... DWORD 項目: プログラム実行フラグ

● "ExecPath" ... 文字列項目: 実行プログラム フルパス

● "ExecParam" ... 文字列項目: 追加コマンドラインパラメータ

プログラム実行フラグ が 1 の場合、印刷終了後に実行プログラム フルパス で指定されたプログ

ラムを起動します。

コマンドラインパラメータに 印刷結果(TIFF)ファイルのフルパス が " 囲み で設定されます。

追加コマンドラインパラメータ に指定があれば、プログラムを呼び出すときに

印刷結果(TIFF)ファイル のフルパス だけでなく、追加コマンドラインパラメータも

コマンドラインパラメータ に設定されます。

■ 印刷結果(TIFFファイル) のファイル形式

拡張子 : TIF

ファイル形式: TIFF形式 モノクロ PackBits圧縮

22

3.2 ビューアプログラムの仕様

ビビュューーアアププロロググララムムの仕様について記述します。

■ 起動時のコマンドラインパラメータ

● "???" ... 表示するファイル を指定します。

● /T??? ... プログラムのキャプションを指定します。

例: C:\Program Files\SfCs\SfCsVw.exe "D:\Data\Test.TIF" /Tテストデータの表示

■ 表示できるファイル形式

● TIFF形式 圧縮なし

修正CCITT MH 圧縮

CCITT G3 MH 圧縮

CCITT G3 MR 圧縮

PackBits 圧縮

Class F 圧縮

G4 圧縮

JPEG圧縮

● BMPファイル

● PCXファイル

● DCXファイル

● JPEGファイル

● テキストファイル

● FAXファイル DOS版STARFAXで扱われているファイル形式です。

● LNKファイル STARFAXで扱われているファイル形式です。