ページの先頭行へ戻る
 Formcoordinatorユーザーズガイド

C.1.15 クラス:PrintDataBuilder

電子フォームとXMLデータを利用して、サーバのプリンタへの印刷を行います。

注意

PrintDataBuilderは推奨されないクラスです。サーバでの帳票印刷はList Creatorを使用してください。

■ クラスの概要

クラス名

PrintDataBuilder

パッケージ名

com.fujitsu.form

文法

public class PrintDataBuilder

継承関係

java.lang.Object
   |
   +--- com.fujitsu.form.PrintDataBuilder

フィールドの概要

名称

説明

public int

status

印刷処理状態を表します。

public static final int

PRINTON

印刷処理が実行中を表すstatusの値です。

public static final int

PRINTOFF

印刷処理が実行されていないことを表すstatusの値です。

public static final int

PRINTJOBEND

印刷業務が終了していることを表すstatusの値です。

public static final int

PRINT

印刷を行うことを表すendPrint()メソッドのパラメタ値です。

public static final int

PRINTCANCEL

印刷を中止することを表すendPrint()メソッドのパラメタ値です。

public static final int

PAPTYP_SERIAL

用紙種別に連帳を指定するsetPaperType()メソッドのパラメタ値です。

public static final int

PAPTYP_SINGLE

用紙種別に単票を指定するsetPaperType()メソッドのパラメタ値です。

コンストラクタの概要

コンストラクタ名

説明

public
PrintDataBuilder(java.lang.String,java.lang.String)

電子フォーム格納パスおよび電子フォーム名を指定し、PrintDataBuilderオブジェクトを生成します。

public
PrintDataBuilder(java.lang.String)

電子フォーム名を指定し、PrintDataBuilderオブジェクトを生成します。

メソッドの概要

戻り値型

メソッド名

説明

void

setXMLData(org.w3c.dom.Document)

ドキュメントオブジェクトを指定して、電子フォームを印刷するときのXMLデータとして設定します。

void

setItemAttribute(org.w3c.dom.Document)

ドキュメントオブジェクトを指定して、電子フォームを印刷するときの項目制御情報として設定します。

void

setPrinterDeviceType(java.lang.String)

出力するプリンタの機種名を指定します。

void

setPrinterName(java.lang.String)

出力先プリンタ名を指定します。

void

setDescriptorName(java.lang.String)

電子フォーム名を指定します。

void

setPrintJobName(java.lang.String)

印刷ジョブ名を指定します。

void

setMediaDirectory(java.lang.String)

メディア格納ディレクトリを指定します。

void

setOverlayPrint(boolean)

オーバレイを印刷するかどうかを指定します。

void

setPaperType(int)

用紙種別を指定します。

void

setPaperSizeName(java.lang.String)

用紙名を指定します。

void

setPaperTrayName(java.lang.String)

給紙口名を指定します。

void

setPrintCopies(int)

印刷部数を指定します。

void

setPrintSide(boolean)

両面印刷するかどうかを指定します。

void

setFontMappingFileName(java.lang.String)

置換フォント定義ファイル名を指定します。

void

write()

印刷データを出力します。

void

endPrint()

印刷を終了します。

void

endPrint(int)

印刷を終了します。印刷の中止を行うことができます。

void

endPrintJob()

印刷業務を終了します。

org.w3c.dom.Document

getTemplateXMLData()

電子フォームから初期値のデータを設定するためのXMLデータの雛形を取得し、そのドキュメントオブジェクトを返します。

フィールドの詳細

status

形式:

public int status

説明:

現在の印刷処理状態を次に示す値で表します。

説明

0(PRINTOFF)

印刷処理が実行されていません。

1(PRINTON)

印刷処理が実行されています。

2(PRINTJOBEND)

印刷業務が終了しています。

関連項目:

write()、endPrint()、 endPrintJob()

PRINTON

形式:

public static final int PRINTON

説明:

印刷処理が実行中である状態を表すstatusの値です。


関連項目:

status

PRINTOFF

形式:

public static final int PRINTOFF

説明:

印刷処理が実行されていない状態を表すstatusの値です。


関連項目:

status

PRINTJOBEND

形式:

public static final int PRINTJOBEND

説明:

印刷業務が終了している状態を表すstatusの値です。


関連項目:

status

PRINT

形式:

public static final int PRINT

説明:

印刷を実行することを表すendPrint()メソッドのパラメタ値です。


関連項目:

endPrint(int)

PRINTCANCEL

形式:

public static final int PRINTCANCEL

説明:

印刷を中止することを表すendPrint()メソッドのパラメタ値です。


関連項目:

endPrint(int)

PAPTYP_SERIAL

形式:

public static final int PAPTYP_SERIAL

説明:

用紙種別に連帳を指定するsetPaperType()メソッドのパラメタ値です。


関連項目:

setPaperType()

PAPTYP_SINGLE

形式:

public static final int PAPTYP_SINGLE

説明:

用紙種別に単票を指定するsetPaperType()メソッドのパラメタ値です。


関連項目:

setPaperType()

コンストラクタの詳細

PrintDataBuilder(java.lang.String,java.lang.String)

形式:

public PrintDataBuilder(java.lang.String descriptorStoragePath,
                        java.lang.String descriptorName)
  throws java.lang.IllegalArgumentException,
         java.lang.UnsatisfiedLinkError,
         com.fujitsu.form.XmlProcessorException
         com.fujitsu.form.PrintException

説明:

電子フォーム格納パスおよび電子フォーム名を指定して、PrintDataBuilderオブジェクトを生成します。
電子フォーム格納パスはURI文字列で指定します。現在、利用できるプロトコルはfileだけです。
なお、印刷途中で電子フォームを切り替える場合は、setDescriptorName()メソッドを利用してください。


パラメタ:

descriptorStoragePath

電子フォーム格納パス

descriptorName

電子フォーム名

例外:

java.lang.IllegalArgumentException

次に示すどちらかの場合

  • 電子フォーム格納パス、電子フォーム名がnullの場合

  • 電子フォーム格納パスにfileプロトコル以外を指定した場合

java.lang.UnsatisfiedLinkError

ライブラリのロードに失敗した場合

com.fujitsu.form.XmlProcessorException

XMLデータを扱うためのオブジェクトの獲得に失敗した場合

com.fujitsu.form.PrintException

印刷を行う環境の開設に失敗した場合

PrintDataBuilder(java.lang.String)

形式:

public PrintDataBuilder(java.lang.String descriptorName)
  throws java.lang.IllegalArgumentException,
         java.lang.UnsatisfiedLinkError,
         com.fujitsu.form.XmlProcessorException
         com.fujitsu.form.PrintException

説明:

電子フォーム名を指定して、PrintDataBuilderオブジェクトを生成します。
なお、電子フォームは、WindowsではFormcoordinatorの「環境設定」で、SolarisおよびLinuxではFormcoordinatorの環境設定コマンドのmxsetassetsdirコマンドで設定されている電子フォーム格納先ディレクトリから検索されます。
印刷途中で電子フォームを切り替えたい場合は、setDescriptorName()メソッドを利用してください。


パラメタ:

descriptorName

電子フォーム名

例外:

java.lang.IllegalArgumentException

電子フォーム名がnullの場合

java.lang.UnsatisfiedLinkError

ライブラリのロードに失敗した場合

com.fujitsu.form.XmlProcessorException

XMLデータを扱うためのオブジェクトの獲得に失敗した場合

com.fujitsu.form.PrintException

印刷を行う環境の開設に失敗した場合

■ メソッドの詳細

setXMLData(org.w3c.dom.Document)

形式:

public void setXMLData(org.w3c.dom.Document xmlData)
  throws com.fujitsu.form.XmlProcessorException

説明:

指定したドキュメントオブジェクトを、電子フォームを印刷するときのXMLデータとして設定します。サーバ印刷では、電子フォームの初期値は有効になりません。パラメタ「xmlData」にnullを指定した場合は、設定されているXMLデータは無効となります。


パラメタ:

xmlData

XMLデータを表すドキュメントオブジェクト

戻り値:

なし


例外:

com.fujitsu.form.XmlProcessorException

ドキュメントオブジェクトの設定に失敗した場合

関連項目:

setItemAttribute()

setItemAttribute(org.w3c.dom.Document)

形式:

public void setItemAttribute(org.w3c.dom.Document attData)
  throws com.fujitsu.form.XmlProcessorException

説明:

指定したドキュメントオブジェクトを、電子フォームを印刷するときの項目制御情報として設定します。印刷時には電子フォームの初期値とattDataをマージしたものを初期値としますが、attDataの値のほうが電子フォームの初期値よりも優先されます。
attDataにnullを指定した場合は、以前に設定しているドキュメントオブジェクトを削除します。


パラメタ:

attData

項目制御情報を表すドキュメントオブジェクト

戻り値:

なし


例外:

com.fujitsu.form.XmlProcessorException

ドキュメントオブジェクトの設定に失敗した場合

関連項目:

setXMLData()

setPrinterDeviceType(java.lang.String)

形式:

public void setPrinterDeviceType(java.lang.String printerDeviceType)
  throws com.fujitsu.form.PrintException

説明:

出力するプリンタの機種名を指定します。プリンタ機種名の指定は必ずwrite()メソッドの実行前に行ってください。途中で指定を変更する場合には、endPrint()メソッドを実行して、一度印刷処理を終了してください。指定を省略した場合は、"PS2"(PostScriptレベル2対応プリンタ)が有効になります。
このメソッドはSolarisおよびLinuxでだけ有効です。


パラメタ:

printerDeviceType

詳細を次に示します。
"PS2" PostScriptレベル2対応プリンタ
"FNP" FNPシーケンスサポートプリンタ

戻り値:

なし


例外:

com.fujitsu.form.PrintException

出力するプリンタの機種名の設定に失敗した場合

setPrinterName(java.lang.String)

形式:

public void setPrinterName(java.lang.String printerName)
  throws com.fujitsu.form.PrintException

説明:

出力先プリンタ名を指定します。出力先プリンタ名の指定は必ずwrite()メソッドの実行前に行ってください。
パラメタにnullを指定した場合および出力先プリンタ名を指定しない場合は、Windowsは通常使うプリンタとして定義しているプリンタが、SolarisおよびLinuxはシステムのデフォルトのプリンタが使用されます。
なお、SolarisおよびLinuxでサポートしているプリンタは「PostScriptレベル2対応プリンタ」および「FNPシーケンスサポートプリンタ」だけです。
デフォルトのプリンタ名は、lpstatコマンドで確認できます。


例:

デフォルトのプリンタ名を確認する場合

lpstat -d
system default destination: psprinter

この場合、デフォルトのプリンタ名は"psprinter"です。


パラメタ:

printerName

出力先プリンタ名

Windows出力先プリンタ名の指定について、次に示す場合に分けて説明します。

  • ローカルプリンタの場合
    プリンタの一覧で得られる名前で指定します。
    次に示す画面では、"FUJITSU FMLBP224"がローカルプリンタなので、"FUJITSU FMLBP224"と指定します。

  • ネットワークプリンタの場合
    "\\サーバ名\プリンタ名"という形に変更する必要があります。
    次に示す画面では、"altair_lbp - Altair"がAltairというサーバに接続した、altair_lbpというネットワークプリンタなので、"\\altair\altair_lbp"と指定します。

SolarisLinux出力先プリンタ名は、システムに登録したプリンタ名を指定します。
システムに登録したプリンタ名は、lpstatコマンドで確認できます。

例:

SolarisSolarisで、システムに登録したプリンタ名を確認する場合

lpstat -a
psprinter accepting requests since 2001年10月02日 (火) 13時54分40秒 JST
psprinter2 accepting requests since 2001年10月03日 (水) 13時59分10秒 JST

この場合、システムに登録したプリンタ名は"psprinter"と"psprinter2"の2つです。

LinuxLinuxで、システムに登録したプリンタ名を確認する場合

lpstat -a
psprinter accepting requests since Jan 01 00:00
psprinter2 accepting requests since Jan 01 00:00

この場合、システムに登録したプリンタ名は"psprinter"と"psprinter2"の2つです。


戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setDescriptorName(java.lang.String)

形式:

public void setDescriptorName(java.lang.String descriptorName)
  throws com.fujitsu.form.PrintException

説明:

印刷したい電子フォーム名を指定します。指定した電子フォーム名は以降のwrite()メソッドに対して有効となります。パラメタにnull を指定すると、PrintDataBuilder生成時に指定した電子フォーム名となります。


パラメタ:

descriptorName

電子フォーム名

戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setPrintJobName(java.lang.String)

形式:

public void setPrintJobName(java.lang.String printJobName)
  throws com.fujitsu.form.PrintException

説明:

印刷ジョブ名を指定します。ここで指定した名前はプリントマネージャの表示画面に出力されます。印刷ジョブ名の指定は必ずwrite()メソッドの実行前に行ってください。途中で印刷ジョブ名を変更する場合には、endPrint()メソッドを実行して、一度印刷処理を終了してください。
パラメタにnullを指定した場合および印刷ジョブ名を指定しない場合は、電子フォーム名が印刷ジョブ名となります。
このメソッドはWindowsでだけ有効です。


パラメタ:

printJobName

印刷ジョブ名

戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setMediaDirectory(java.lang.String)

形式:

public void setMediaDirectory(java.lang.String mediaDirectory)
  throws java.lang.IllegalArgumentException,
         com.fujitsu.form.PrintException

説明:

印刷時に使用するメディアデータの格納先パス名を指定します。メディアデータの格納先パス名はURI文字列で指定します。利用できるプロトコルはfileおよびhttpです。指定した格納先パス名は以降のwrite()メソッドに対して有効となります。
パラメタにnullを指定した場合および指定を省略した場合は、電子フォーム格納パスが有効になります。


パラメタ:

mediaDirectory

メディアデータの格納先パス名

戻り値:

なし

例外:

java.lang.IllegalArgumentException

メディア格納パス名にfileまたはhttpプロトコル以外を指定した場合

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setOverlayPrint(boolean)

形式:

public void setOverlayPrint(boolean overlayPrintMode)
  throws com.fujitsu.form.PrintException

説明:

オーバレイを印刷するかどうかを指定します。指定は以降のwrite()メソッドに対して有効となります。指定を省略した場合は、オーバレイを印刷します。


パラメタ:

overlayPrintMode

オーバレイを印刷する場合、trueを設定します。
オーバレイを印刷しない場合、falseを設定します。

戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setPaperType(int)

形式:

public void setPaperType(int paperType)
  throws java.lang.IllegalArgumentException,
         com.fujitsu.form.PrintException

説明:

用紙種別を指定します。

用紙種別の指定は必ずwrite()メソッドの実行前に行ってください。途中で用紙種別を変更する場合には、endPrint()メソッドを実行して、一度印刷処理を終了してください。指定を省略した場合は、単票になります。
このメソッドはWindowsでだけ有効です。


パラメタ:

paperType

詳細を次に示します。

PAPTYP_SERIAL

連帳

PAPTYP_SINGLE

単票

戻り値:

なし


例外:

java.lang.IllegalArgumentException

paperTypeに指定できない値を指定した場合

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setPaperSizeName(java.lang.String)

形式:

public void setPaperSizeName(java.lang.String paperSizeName)
  throws com.fujitsu.form.PrintException

説明:

用紙サイズをプリンタドライバの用紙名で指定します。
用紙名は文字および空白の全角・半角の違い、空白の有無などに注意して正確に指定します。電子フォームの用紙サイズ指定を無効にしたい場合および電子フォームで指定した用紙サイズが採用されない場合に指定してください。指定した用紙名は、以降のwrite()メソッドに対して有効となります。
パラメタにnullを指定した場合および指定を省略した場合は、電子フォームの用紙サイズの指定が有効になります。
このメソッドはWindowsでだけ有効です。


パラメタ:

paperSizeName

プリンタドライバの用紙名
ドライバの用紙名に指定する値はプリンタドライバによって異なります。ドライバの用紙名は、文字および空白の全角・半角の違い、空白の有無などに注意して正確に指定します。
指定例を次に示します。ただし、プリンタドライバのバージョンによっては、指定方法で示した値と異なる場合があります。

プリンタ名

オペレーティングシステム

プリンタドライバ

指定する用紙名

指定方法

富士通 FMPR系プリンタ

Windows 2000、Windows Server 2003

FUJITSU FMPR 180DPI

15 x 11 インチ

15 x 11 インチ
(インチは半角カタカナ、xは英小文字です。「15 x 11 インチ」の間には半角スペースで区切られています。)

富士通ESC/P系プリンタ

Windows 2000、Windows Server 2003

FUJITSU ESC/P

15 x 11 インチ

15 x 11 インチ
(インチは半角カタカナ、xは英小文字です。「15 x 11 インチ」の間には半角スペースで区切られています。)

EPSON VP-1000系プリンタ

Windows 2000、Windows Server 2003

EPSON VP-1000

15 x 11 インチ

15 x 11 インチ
(インチは半角カタカナ、xは英小文字です。「15 x 11 インチ」の間には半角スペースで区切られています。)

この例で示したプリンタ以外の場合は、プリンタのプロパティまたは印刷設定の用紙名に関する値を指定します。用紙サイズの呼称は、プリンタドライバによっては、「用紙サイズ」、「原稿サイズ」などの場合があります。


戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setPaperTrayName(java.lang.String)

形式:

public void setPaperTrayName(java.lang.String paperTrayName)
  throws com.fujitsu.form.PrintException

説明:

Windows給紙口をプリンタドライバの給紙口名で指定します。
給紙口名は文字および空白の全角・半角の違い、空白の有無などに注意して正確に指定します。指定した給紙口名は、以降のwrite()メソッドに対して有効となります。
パラメタにnullを指定した場合および指定を省略した場合は、給紙口は指定なしになります。

SolarisLinux給紙口名を指定します。指定した給紙口名は、以降のwrite()メソッドに対して有効となります。
パラメタにnullを指定した場合および指定を省略した場合は、給紙口は指定なしになります。ただし、プリンタ装置によっては指定した給紙口から給紙されないことがあります。


パラメタ:

paperTrayName

Windowsプリンタドライバの給紙口名
プリンタドライバの給紙口名に指定する値はプリンタドライバによって異なります。ドライバの給紙口名は、文字および空白の全角・半角の違い、空白の有無などに注意して正確に指定します。
指定例を次に示します。ただし、プリンタドライバのバージョンによっては、指定方法で示した値と異なる場合があります。

プリンタ名

オペレーティングシステム

プリンタドライバ

指定する給紙口名

指定方法

富士通 FMPR系プリンタ

Windows 2000、Windows Server 2003

FUJITSU FMPR 180DPI

ホッパユニット

ホッパユニット
(ホッパユニットは半角カタカナです。)

EPSON LP-8000系プリンタ

Windows 2000、Windows Server 2003

EPSON LP-8000

フロントトレイ

フロントトレイ
(フロントトレイは半角カタカナです。)

CANON LBP-730 LIPS4

Windows 2000、Windows Server 2003

CANON LBP-730 LIPS4

中段カセット

中段カセット
(カセットは全角カタカナです。)

CANON LBP-730 LIPS4

Windows 2000、Windows Server 2003

CANON LBP-730 LIPS4

下段カセット

下段カセット
(カセットは全角カタカナです。)

この例で示したプリンタ以外の場合は、プリンタのプロパティまたは印刷設定の給紙口に関する値を指定します。給紙口の呼称は、プリンタドライバによっては、「給紙方法」、「用紙トレイ選択」などの場合があります。

SolarisLinux詳細を次に示します。

  • "H1"
    ホッパ1

  • "H2"
    ホッパ2

  • "H3"
    ホッパ3

  • "AT"
    自動

  • "NO"
    指定なし

上記以外の文字列を指定した場合、給紙口の指定は無視されます。

戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setPrintCopies(int)

形式:

public void setPrintCopies(int printCopies)
  throws java.lang.IllegalArgumentException,
         com.fujitsu.form.PrintException

説明:

印刷部数を指定します。指定可能な値は1~999です。指定した印刷部数は、以降のwrite()メソッドに対して有効となります。指定を省略した場合は、電子フォームの印刷部数は1になります。
Windowsの場合、印刷部数の指定は、プリンタドライバのプロパティで複写枚数が指定可能なプリンタでだけ有効となります。
SolarisおよびLinuxの場合、プリンタ装置によっては指定した印刷部数が有効にならないことがあります。


パラメタ:

printCopies

印刷部数(1~999)

戻り値:

なし


例外:

java.lang.IllegalArgumentException

パラメタに指定できない値を指定した場合

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

setPrintSide(boolean)

形式:

public void setPrintSide(boolean printSideMode)
  throws com.fujitsu.form.PrintException

説明:

複数ページを印刷する場合に両面印刷するかどうかを指定します。
両面印刷指定は必ずwrite()メソッドの実行前に行ってください。途中で指定を変更する場合には、endPrint()メソッドを実行して、一度印刷処理を終了してください。指定を省略した場合は、両面印刷は行われません。
また、両面印刷する指定の場合でも、プリンタ装置が両面印刷機能をサポートしていない場合には両面印刷指定は無効になります。
このメソッドはWindowsでだけ有効です。


パラメタ:

printSideMode

両面印刷する場合、trueを設定します。
両面印刷しない場合、falseを設定します。

戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

SolarisLinuxsetFontMappingFileName(java.lang.String)

形式:

public void setFontMappingFileName(java.lang.String fontMappingFileName)
  throws java.lang.IllegalArgumentException,
         com.fujitsu.form.PrintException

説明:

フォントの置き換え情報を記述した置換フォント定義ファイル名をフルパスで指定します。置換フォント定義ファイル名はURI文字列で指定します。現在、利用できるプロトコルはfileだけです。置換フォント定義ファイル名の指定は必ずwrite()メソッドの実行前に行ってください。

置換フォント定義ファイルは、次に示す形式で記述します。

*コメント
"置換前フォント名" "置換後フォント名(日本語用),置換後フォント名(英数字用)"

次に示す点に注意して記述してください。

  • ファイルの内容は、アプリケーション実行時のlocaleに従って記述してください。


例:

サーブレットコンテナの設定でLANGにja_JP.eucJPなどのEUCのlocaleを指定している場合、置換フォント定義ファイルの内容もEUCで記述してください。

  • 1行は256文字以内で記述し、行の終わりには改行コードを付加してください。

  • 行の先頭(1桁目)から記述してください。

  • "置換前フォント名"および"置換後フォント名(日本語用),置換後フォント名(英数字用)"の間はそれぞれ1つ以上の半角の空白またはタブで区切ってください。全角の空白は使用できません。

  • 置換前フォント名、置換後フォント名(日本語用)、置換後フォント名(英数字用)は31バイト以内で指定してください。

    置換フォント定義ファイルの記述例を次に示します。

    *置換フォント定義ファイル
    "MS 明朝" "Ryumin-Light-EUC-H,Ryumin-Light.Hankaku"
    "MS ゴシック" "GothicBBB-Medium-EUC-H,GothicBBB-Medium.Hankaku"

    このメソッドはSolarisおよびLinuxでだけ有効です。

パラメタ:

fontMappingFileName

置換フォント定義ファイル名

戻り値:

なし


例外:

java.lang.IllegalArgumentException

次に示すどちらかの場合

  • 置換フォント定義ファイル名がnullの場合

  • 置換フォント定義ファイル名にfileプロトコル以外を指定した場合

com.fujitsu.form.PrintException

印刷情報の設定に失敗した場合

関連項目:

write()

write()

形式:

public void write()
  throws com.fujitsu.form.XmlProcessorException,
         com.fujitsu.form.FormIOException,
         com.fujitsu.form.PrintException

説明:

印刷データを生成しプリンタに出力します。出力する用紙のサイズを超える出力を行った場合、出力する用紙の印刷可能範囲を超えた部分は印刷されません。このメソッドを呼び出すと、ステータスは印刷中(PRINTON)となります。印刷を完了する場合は、endPrint()メソッドで完了する必要があります。印刷業務がすべて完了した場合は、endPrintJob()メソッドで印刷のために獲得した資源を解放する必要があります。


パラメタ:

なし


戻り値:

なし


例外:

com.fujitsu.form.XmlProcessorException

XMLデータ処理でエラーが発生した場合

com.fujitsu.form.FormIOException

電子フォームが見つからなかった場合

com.fujitsu.form.PrintException

印刷時にエラーが発生した場合

関連項目:

status、setPrinterName()、setDescriptorName()、setPrintJobName()、setMediaDirectory()、setOverlayPrint()、setPaperType()、setPaperSizeName()、setPaperTrayName()、setPrintCopies()、endPrint()、endPrintJob()

endPrint()

形式:

public void endPrint()
  throws com.fujitsu.form.PrintException

説明:

プリンタへの印刷データの出力を完了し、印刷処理を終了します。このメソッドを呼び出すと、ステータスは印刷処理が実行されていない状態(PRINTOFF)となります。


パラメタ:

なし


戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷時にエラーが発生した場合

関連項目

status、setPrinterName()、setPrintJobName()、write()、endPrintJob()

endPrint(int)

形式:

public void endPrint(int printtype)
  throws com.fujitsu.form.PrintException

説明:

プリンタへの印刷データの出力を完了し、印刷処理を終了します。印刷の中止要求をプリンタに送信することもできます。このメソッドを呼び出すと、ステータスは印刷処理が実行されていない状態(PRINTOFF)となります。


パラメタ:

printtype

詳細を次に示します。

PRINT

印刷要求を行う

PRINTCANCEL

印刷中止要求を行う

なお、PRINTCANCEL以外の指定は、すべてPRINTとして処理します。

戻り値:

なし


例外:

com.fujitsu.form.PrintException

印刷時にエラーが発生した場合

関連項目

status、setPrinterName()、setPrintJobName()、write()、endPrintJob()

endPrintJob()

形式:

public void endPrintJob()

説明:

印刷業務を完了します。印刷処理で獲得した資源をすべて解放します。印刷を行った場合は、endPrint()メソッドで印刷を終了し、最後に必ずendPrintJob()メソッドを呼び出す必要があります。呼び出さなかった場合は、資源が解放されないで残る場合があります。このメソッドを呼び出すと、ステータスは印刷業務が終了している状態(PRINTJOBEND)となります。


パラメタ:

なし


戻り値:

なし


関連項目

status、write()、endPrint()

getTemplateXMLData()

形式:

public org.w3c.dom.Document getTemplateXMLData()
  throws com.fujitsu.form.XmlProcessorException,
         com.fujitsu.form.FormIOException

説明:

電子フォームからXMLデータの雛形に対応するドキュメントオブジェクトを返します。


パラメタ:

なし


戻り値:

XMLデータの雛形を表すドキュメントオブジェクト


例外:

com.fujitsu.form.XmlProcessorException

ドキュメントオブジェクトの生成に失敗した場合

com.fujitsu.form.FormIOException

電子フォームが見つからなかった場合

補足

XMLデータ形式について/項目制御情報について

setXMLData()メソッドで扱うXMLデータおよびsetItemAttribute()メソッドで扱う項目制御情報は、データルートタグをルートとするドキュメントオブジェクトです。
setXMLData()メソッドで扱われるドキュメントオブジェクトについては、「2.3.1 処理の流れとデータ」の「■ Webブラウザから送信されるデータ」を参照してください。
setItemAttribute()メソッドで扱われるドキュメントオブジェクトについては、「2.3.1 処理の流れとデータ」の「■ 項目制御情報」を参照してください。


電子フォーム格納パスの指定について

Webアプリケーション全体で同じ電子フォーム格納パスを使用する場合は、WindowsはFormcoordinatorの環境設定で、SolarisおよびLinuxはFormcoordinatorの環境設定コマンドのmxsetassetsdirコマンドで電子フォーム格納先ディレクトリを設定します。この場合、PrintDataBuilderクラスのコンストラクタでは、電子フォーム格納パスを省略できます。
Webアプリケーションごとに異なる電子フォーム格納パスを使用する場合は、サーブレットの初期化パラメタを利用することで、運用環境で格納先が変更になっても、Webアプリケーションを修正しないで格納先を変更できます。詳細については、「C.1.2 クラス:OutputDataBuilder」の「■ 補足」を参照してください。


サーバ印刷でサポートしているメディア種について

サーバ印刷でサポートしているメディア種を次に示します。

サポートしていないメディア種を指定した場合、メディアデータは印刷されません。


サーバ印刷とクライアント印刷の違いについて

サーバ印刷は、Webブラウザに電子フォームを表示しないでWebアプリケーションから電子フォームの印刷を行います。
電子フォームのプロパティに指定した、次に示す情報はサーバ印刷では有効になりません。
サーバ印刷時には、Java APIを使用して指定してください。

サーバ印刷では、用紙種別、用紙名、および印刷ダイアログの表示を指定することはできません。

■ 使用例

PrintDataBuilderクラスの使用例を次に示します。

Webブラウザから送信された入力データで電子フォームを印刷する場合

この例では、InputDataBuilderクラスのgetXMLData()メソッドでWebブラウザからXMLデータ形式で送信された入力データのドキュメントオブジェクトを生成しています。生成したドキュメントオブジェクトをPrintDataBuilderクラスのsetXMLData()メソッドで設定してwrite()メソッドを行い、Webブラウザから送信されたデータで電子フォームを印刷しています。

import org.w3c.dom.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
import java.io.* ;
import com.fujitsu.form.* ;

public class SampleServlet extends HttpServlet {

  public void doPost(HttpServletRequest request,
                         HttpServletResponse response)
    throws IOException, ServletException
  {
    try{
      // InputDataBuilderを生成します。
      InputDataBuilder idb = new InputDataBuilder(request);

      // Webブラウザから送信された入力データをドキュメントオブジェクトで取得
      // します。
      Document doc = idb.getXMLData() ;

      // PrintDataBuilderを生成します。
      PrintDataBuilder prt = new PrintDataBuilder("file:///c:/pmd","sample") ;
      //SolarisおよびLinuxの場合は以下のように記述します。
      //PrintDataBuilder prt = new PrintDataBuilder("file:////home/pmd","sample") ;

        try {
          // 出力先プリンタ名を設定します。
          prt.setPrinterName("FUJITSU XL-6700") ;

          // 印刷ジョブ名を設定します。
          prt.setPrintJobName("電子フォームのサンプル") ;

          // メディアデータ格納ディレクトリを設定します。
          prt.setMediaDirectory("file:///c:/bmp") ;
         //SolarisおよびLinuxの場合は以下のように記述します。
         // prt.setMediaDirectory("file:////home/bmp") ;

          // 給紙口名を設定します。
          prt.setPaperTrayName("給紙カセット1") ;
         //SolarisおよびLinuxの場合は以下のように記述します。
         // prt.setPaperTrayName("H1") ;

         //SolarisおよびLinuxの場合は置換フォント定義ファイルを指定します。
         // prt.setFontMappingFileName("file:////home/env/fontdef") ;

          // Webブラウザから送信された入力データを設定します。
          prt.setXMLData(doc) ;

          // 印刷要求を行います。
          prt.write() ;

          // 印刷を完了します。
          prt.endPrint() ;
        }
      catch(Exception e) {
        // 印刷要求を中止します。
          if (prt.status == PrintDataBuilder.PRINTON) {
            prt.endPrint(PrintDataBuilder.PRINTCANCEL) ;
          }
        // 例外処理
                    ・
                    ・
                    ・
      }
      // 印刷業務を終了します。
      prt.endPrintJob() ;
    }
    catch(Exception e) {
      // 例外処理
                    ・
                    ・
                    ・
    }
  }
}