使用打印命令脚本打印文档(视频 - 9:40)
适用于:BarTender 2019 及更高版本。
概述
本示例的目的是在文件集成中包含打印命令脚本。
对于拥有多个应用程序和数据库、且各自有不同打印需求的企业来说,这种集成方式可能非常必要。这种情况下,需要打印的 BarTender 文档会根据触发文件中包含的数据而变化。
只需少量编程,这些应用程序就可以被修改或配置为写入包含打印所需数据和嵌入命令行的文本文件。集成服务随后可以读取并执行这些命令行,根据文件中的具体指令告诉 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。此扩展名不能与“文件模式”中指定的扩展名相同。
- 在文件集成面板的 操作 下,点击
删除默认的打印文档操作。
- 选择 操作,点击
打开新建操作对话框。
- 在左侧导航栏的操作类型列表中选择 打印,然后选择 打印命令脚本。
- 点击 确定 关闭 新建操作 对话框。
- 点击集成构建器左上角的
,将集成文件保存为
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。