印刷コマンドスクリプトを使用したドキュメントの印刷方法(動画 - 9分40秒)
対象製品:BarTender 2019以降
概要
この例の目的は、ファイル連携に印刷コマンドスクリプトを組み込むことです。
このような連携は、ネットワーク内に異なる印刷要件を持つ複数のアプリケーションやデータベースが存在する企業で必要になる場合があります。この場合、印刷するBarTenderドキュメントは、トリガーファイルに含まれるデータによって異なります。
少しのプログラミングで、これらのアプリケーションをテキストファイルに印刷用データとコマンドラインを出力するように変更または設定できます。Integration Serviceはこれらのコマンドラインを読み取り実行し、ファイル内の指示に従ってBarTenderに印刷方法を指示します。
シナリオ
ある会社では、ネットワーク上の複数のユーザーが請求書を入力し印刷する必要があります。各ユーザーは共有ドライブにアクセスできますが、請求書のフォーマットはユーザーや請求する商品によって異なります。また、各部門ごとに異なるプリンターを使用しています。
このような場合、請求書発行アプリケーションは、各請求書ごとにデータと印刷コマンドスクリプトを含むテキストファイルを作成できます。このスクリプトはBarTenderに以下の指示を出します:
- 指定されたBarTenderドキュメントを開く
- トリガーファイルをデータファイルとして使用する
- 特定のプリンターで印刷する
- トリガーファイルを削除する
実装方法
以下の手順では、上記シナリオの連携を設定・展開・検証する方法を説明します。
データファイルの準備
- トリガーファイルを保存するネットワークフォルダを作成します。このフォルダはIntegration Serviceが監視します。この例では
\\InvoiceServer\NewInvoiceとします。 - 各請求書タイプごとに、実際のデータファイルと同じ構造・区切りでサンプルファイルを作成します。この例では2つの部門が請求書を印刷します。
- 1つ目の部門用に、
invoice1.txtという名前のテキストファイルを作成し、カンマ区切りの2行のデータを記載します(下記参照)。
BusinessName,ContactName,Position,Address1,City,State,Zip,Country,Phone1,Phone2
Around the Town,Jerome Davis,Buyer,1220 Governor Sq.,Haddonfield,GA,31002,USA,(706) 555-7788,(706) 555-6750 - 2つ目の部門用に、
invoice2.txtという名前のテキストファイルを作成し、引用符とカンマで区切られた2行のデータを記載します(下記参照)。
"BusinessName","ContactName","Position","Address1","City","State","Zip","Country","Phone1","Phone2"
"Far Fetched Imports","Jerry Bom","manager","3320 Happy St.","Incident","Washington","98887","USA","(206) 555-7788","(206) 555-6750" - これらのテキストファイルを手順1で作成した
\\InvoiceServer\NewInvoiceディレクトリに保存します。
BarTenderドキュメントの作成
-
データファイルを使ったドキュメント印刷の「BarTenderドキュメントの作成」セクションと同様の手順で、1つ目の部門用に
invoice1.txtをデータベースとしてBarTenderドキュメントを作成します。 - ドキュメントを
HardwareInvoice.btwとして保存します。 - 同様の手順で、2つ目の部門用に
invoice2.txtをデータベースとしてBarTenderドキュメントを作成し、区切りタイプを「引用符とカンマ」に設定します。 - ドキュメントを
SoftwareInvoice.btwとして保存します。 - 両方のサンプルデータベースファイルを、Integration Serviceが監視するフォルダから別のフォルダに移動します。
- BarTenderを閉じます。
トリガーファイルに印刷コマンドスクリプトを追加
-
invoice1.txtを開き、以下の2行をファイルの先頭に追加します(%END%の直前と直後のみ改行があります)。
%BTW% /AF=c:\command\HardwareInvoice.btw /D="%Trigger File Name%" /PRN="EasyCoder F4 (203 dpi)" /R=3 /P /DD
%END%
これでファイル全体は以下のようになります:
%BTW% /AF=c:\command\HardwareInvoice.btw /D="%Trigger File Name%" /PRN="EasyCoder F4 (203 dpi)" /R=3 /P /DD
%END%
BusinessName,ContactName,Position,Address1,City,State,Zip,Country,Phone1,Phone2
Around the Town,Jerome Davis,Buyer,1220 Governor Sq.,Haddonfield,GA,31002,USA,(706) 555-7788,(706) 555-6750 - このファイルを
invoice1.datとして保存します。 -
invoice2.txtを開き、以下の2行をファイルの先頭に追加します(%END%の直前と直後のみ改行があります)。
%BTW% /AF=c:\command\SoftwareInvoice.btw /D="%Trigger File Name%" /PRN="Datamax 4400" /R=3 /P /DD
%END% - これでファイル全体は以下のようになります:
%BTW% /AF=c:\command\SoftwareInvoice.btw /D="%Trigger File Name%" /PRN="Datamax 4400" /R=3 /P /DD
%END%
"BusinessName","ContactName","Position","Address1","City","State","Zip","Country","Phone1","Phone2"
"Far Fetched Imports","Jerry Bom","manager","3320 Happy St.","Incident","Washington","98887","USA","(206) 555-7788","(206) 555-6750" - このファイルを
invoice2.datとして保存します。
連携ファイルの作成と展開
作成
- BarTender Integration Builderを開きます。
- 新しい連携の作成をクリックして新規連携ダイアログを開きます。
- ファイルをクリックし、OKをクリックします。
- ファイル連携ペインで連携を選択します。
- プロパティペインで、連携の名前にEach Orderと入力します。
- 連携開始メニューから自動を選択します。
- ユーザーアカウントの項目でユーザー認証情報を指定します。詳細は空ファイルを使ったドキュメント印刷を参照してください。
- ファイル連携ペインでファイル検出を選択します。
- プロパティペインの検出オプションで、場所リストからコンピューター/ネットワークを選択します。
- スキャンするフォルダーのオプションで、Integration Serviceが監視するフォルダーのパスを入力または参照します。この場合、上記のデータファイルの準備で作成した\\InvoiceServer\NewInvoiceフォルダーを指定します。
- ファイルパターン欄に*.datと入力します。
- 検出後のアクションセクションまでスクロールし、アクションメニューからファイル名の変更を選択します。
-
新しい拡張子欄に.txtと入力します。この拡張子はファイルパターンで指定したものと同じにはできません。
- ファイル連携ペインのアクションで、
をクリックしてデフォルトの印刷アクションを削除します。
-
アクションを選択し、
をクリックして新規アクションダイアログを開きます。
- 左側のナビゲーションペインで印刷を選択し、印刷コマンドスクリプトを選択します。
- OKをクリックして新規アクションダイアログを閉じます。
- Integration Builderの左上にある
をクリックし、連携ファイルを
VariantInvoices.btinとして保存します。
展開
-
連携の展開をクリックして新規展開ダイアログを開きます。
- 展開の名前と説明を入力します。
- 連携ファイルの設定がVariantInvoices.btinになっていることを確認します。違う場合は参照をクリックし、
VariantInvoices.btinを選択します。 - ターゲットサーバーに、連携ファイルを展開したいサーバーを追加します。
- 必要なエラー処理設定を指定します。
- OKをクリックしてダイアログを閉じ、連携ファイルを展開します。
- Administration Consoleが連携ノードで開き、作成した連携が表示されます。
印刷コマンドスクリプトの理解とカスタマイズ
%BTW%は、Integration ServiceにBarTenderを起動し、続く文字列をBarTenderのコマンドラインとして使用するよう指示するコマンドです。
%END%は、コマンドラインの終了を示し、それ以降がデータであることをIntegration Serviceに伝えます。
両方のトリガーファイルの印刷コマンドスクリプトは、以下のように編集してください:
-
/PRNコマンドの後ろにあるパスやプリンター名を、ご自身のプリンターのパスや名前に置き換えてください。 -
c:\command\は、ご自身がBarTenderドキュメントを保存したパスに置き換えてください。
また、以下の点にもご注意ください:
- 印刷コマンドスクリプトで使用するパスやファイル名、プリンター名にスペースが含まれる場合は、全体を引用符で囲んでください。
- Administration Consoleは
%Trigger File Name%を変数として認識し、BarTenderにパラメータを渡す前に最新のトリガーファイル名に自動で置き換えます。%Trigger File Name%をデータベースファイル名に置き換えないでください。 -
/R=3コマンドは、トリガーファイルの3行目をデータレコードとして扱うようBarTenderに指示します。 - 2つのデータベース(1つはテキストファイル、もう1つはテキスト以外のデータベース)を内部結合し、
/Dコマンドでテキストデータベースを上書きする場合、/Rコマンドは/R=1に設定してください。 -
/PコマンドはBarTenderに印刷を指示します。 -
/DDコマンドはBarTenderにトリガーファイルを読み取り後に削除するよう指示します。
シナリオの実行と連携処理の確認
- Administration Consoleで連携名Each Orderをクリックし、連携の詳細ビューを開きます。
- 次の手順で例を実行すると、このビューの出力セクションで連携の処理状況を確認できます。
- Windowsエクスプローラーを使い、
invoice1.datファイルを\\InvoiceServer\NewInvoiceフォルダーにコピーします。 - 連携はほぼ即座に開始され、
invoice1.datファイルを検出し、invoice1.datをinvoice1.txtにリネームします。 - BarTenderはバックグラウンドで起動し(画面には表示されません)、.txtファイルをトリガーファイル内のコマンドラインに渡し、変数
%Trigger File Name%にはinvoice1.txtが挿入されます。 - BarTenderは
HardwareInvoice.btwを開き、invoice1.txtからデータを読み取り、印刷し、invoice1.txtを削除します。 - Windowsエクスプローラーを使い、
invoice2.datファイルを\\InvoiceServer\NewInvoiceフォルダーにコピーします。 - 連携はほぼ即座に開始され、
invoice2.datファイルを検出し、invoice2.datをinvoice2.txtにリネームします。 - BarTenderが起動し、.txtファイルをトリガーファイル内のコマンドラインに渡し、変数
%Trigger File Name%にはinvoice2.txtが挿入されます。 - BarTenderは
SoftwareInvoice.btwを開き、invoice2.txtからデータを読み取り、印刷し、invoice2.txtを削除します。