使用列印指令腳本列印文件(影片 - 9:40)
適用於:BarTender 2019 及之後版本。
概述
本範例的目的是在檔案整合中加入列印指令腳本。
這類整合對於擁有多個應用程式和資料庫、且列印需求分散於網路各處的企業來說非常實用。在這種情況下,要列印的 BarTender 文件會根據觸發檔案中包含的資料而有所不同。
只需少量程式設計,這些應用程式就能被修改或設定為將列印所需的資料及嵌入的指令行寫入文字檔。整合服務(Integration Service)即可讀取並執行這些指令行,根據檔案中的具體指示告訴 BarTender 如何列印項目。
情境說明
某公司需要列印由多位不同使用者在網路上輸入的發票。每位使用者都能存取共用磁碟機。不過,發票的格式會因使用者及所開立產品而異。不同部門各自使用不同的印表機。
在這種情況下,開立發票的應用程式可以在每張發票產生時,同時建立一個包含資料及列印指令腳本的文字檔,腳本會指示 BarTender:
- 開啟指定的 BarTender 文件。
- 將觸發檔案作為資料檔使用。
- 列印到指定的印表機。
- 刪除觸發檔案。
實作步驟
以下步驟說明如何針對上述情境設定、部署並驗證整合。
設定資料檔案
- 建立一個網路資料夾,用來儲存觸發檔案。這個資料夾將由整合服務監控。本例中資料夾名稱為
\\InvoiceServer\NewInvoice。 - 針對每種發票類型,建立一個範例檔案,資料結構及分隔方式需與實際資料檔完全相同。本例中有兩個部門需要列印發票。
- 第一個部門,建立名為
invoice1.txt的文字檔,內容為兩行以逗號分隔的資料(如下所示)。
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 - 第二個部門,建立名為
invoice2.txt的文字檔,內容為兩行以引號及逗號分隔的資料(如下所示)。
"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 文件,資料庫選擇
invoice1.txt。 - 將文件儲存為
HardwareInvoice.btw。 - 再依相同步驟,為第二個部門建立另一份 BarTender 文件,資料庫選擇
invoice2.txt,並記得將分隔類型設為「引號及逗號」。 - 將文件儲存為
SoftwareInvoice.btw。 - 將兩個範例資料庫檔案移出整合服務會掃描的資料夾,放到其他資料夾。
- 關閉 BarTender。
在觸發檔案中加入列印指令腳本
- 開啟
invoice1.txt,在檔案開頭加入以下兩行。(只有在%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,在檔案開頭加入以下兩行。(只有在%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。
- 點選 建立新整合,開啟新整合對話框。
- 點選 檔案,再點選 確定。
- 在檔案整合窗格中,選擇 整合。
- 在屬性窗格中,將整合的名稱輸入為 Each Order。
- 在啟動整合選單中,選擇 自動。
- 在使用者帳戶下,指定使用者憑證。詳情請參考 使用空檔案列印文件。
- 在檔案整合窗格中,選擇 檔案偵測。
- 在屬性窗格的 偵測選項下,從 位置清單選擇 電腦/網路。
- 在「要掃描的資料夾」選項中,輸入路徑或瀏覽至要讓整合服務監控的資料夾。本例請指定你在「設定資料檔案」步驟建立的 \\InvoiceServer\NewInvoice 資料夾。
- 在「檔案類型」欄位輸入 *.dat。
- 往下捲動到「偵測後動作」區段,從動作選單選擇 重新命名檔案。
-
在「新副檔名」欄位輸入 .txt。這個副檔名不能與「檔案類型」中指定的相同。
- 在檔案整合窗格的 動作下,點選
,將預設的「列印文件」動作移除。
- 選擇 動作,然後點選
,開啟新增動作對話框。
- 在左側導覽窗格的動作類型清單中選擇 列印,然後選擇 列印指令腳本。
- 點選 確定 關閉 新增動作 對話框。
- 點選 Integration Builder 左上角的
,將整合檔案儲存為
VariantInvoices.btin。
部署
- 點選
部署整合,開啟新部署對話框。
- 輸入部署名稱及說明。
- 確認「整合檔案」設定為 VariantInvoices.btin。若不是,請點選 瀏覽,找到並選擇
VariantInvoices.btin。 - 在「目標伺服器」中,加入你要部署整合檔案的伺服器。
- 設定所需的錯誤處理選項。
- 點選 確定 關閉對話框並部署整合檔案。
- 管理主控台會自動開啟在 整合 節點,顯示你的整合。
瞭解與自訂列印指令腳本
%BTW% 是列印指令腳本的指令,告訴整合服務啟動 BarTender,並將後面的字串作為 BarTender 指令行。
%END% 告訴整合服務指令行已結束,接下來的內容是資料。
你需要針對兩個觸發檔案編輯列印指令腳本,如下:
- 將
/PRN指令後面的路徑及印表機名稱,改成你自己的印表機路徑及名稱。 - 將
c:\command\改成你儲存 BarTender 文件的路徑。
另外請注意:
- 如果你的路徑、檔名或印表機名稱中有空格,必須將整個路徑加上引號。
- 管理主控台會將
%Trigger File Name%視為變數,並在傳遞參數給 BarTender 前自動以最新的觸發檔案名稱取代。請勿將 %Trigger File Name% 換成資料庫檔案名稱。 -
/R=3指令告訴 BarTender,將觸發檔案的第三行當作資料記錄。 - 如果你用列印指令腳本列印的標籤有兩個資料庫內部連接,其中一個是文字檔,另一個是非文字檔,且用
/D指令對文字資料庫進行覆寫,則/R指令應設為/R=1,而不是/R=3。 -
/P指令告訴 BarTender 執行列印。 -
/DD指令告訴 BarTender 讀取完畢後刪除觸發檔案。
執行情境並檢視整合處理過程
- 在管理主控台中,點選整合名稱 Each Order,開啟整合詳細檢視。
- 當你執行下一步的範例情境時,可以在此檢視畫面的 輸出 區段觀察整合的處理步驟。
- 使用 Windows 檔案總管,將
invoice1.dat複製到\\InvoiceServer\NewInvoice資料夾。 - 整合會幾乎立即開始,偵測到
invoice1.dat檔案,並將其重新命名為invoice1.txt。 - BarTender 會在背景啟動(你不會看到它開啟),並將 .txt 檔案傳送到觸發檔案中的指令行,將
invoice1.txt取代%Trigger File Name%變數。 - BarTender 會開啟
HardwareInvoice.btw,讀取invoice1.txt的資料,列印項目,然後刪除invoice1.txt。 - 使用 Windows 檔案總管,將
invoice2.dat複製到\\InvoiceServer\NewInvoice資料夾。 - 整合會幾乎立即開始,偵測到
invoice2.dat檔案,並將其重新命名為invoice2.txt。 - BarTender 會開啟,並將 .txt 檔案傳送到觸發檔案中的指令行,將
invoice2.txt取代%Trigger File Name%變數。 - BarTender 會開啟
SoftwareInvoice.btw,讀取invoice2.txt的資料,列印項目,然後刪除invoice2.txt。