如何从打印命令脚本触发文件中提取信息,并将其用于设置打印文档操作
问题
如何从包含打印命令脚本指令的触发文件中提取信息,然后在“打印文档”操作中用这些信息设置变量数据和打印选项?
解答
可以通过以下方法,从包含命令脚本参数的触发文件中提取命名数据源,然后像使用普通 csv 文件一样使用这些数据。无论采用哪种方法,都需要创建一个包含“打印文档”命令的文件集成。
使用正则表达式
这两种方法中较简便的一种是使用正则表达式(regex)。整个流程通过“打印文档”操作如下:
前三个操作是“查找并删除”操作。以下是示例中使用的数据:
%BTW% /AF="C:\Users\framos\Desktop\TempFiles\PALLET-0.btw" /PRN="PFM_ADV_COP" /R=3 /P /D="%Trigger File Name%" /DD
%END%
AF1;AF2;AF3;AF4;AF5;A5;AF6;AF7;AF8;AF9;AF10;AF11;AF12;AF13;AF14;AF15;AF16;A16;AF17;AF18;AF19;AF20;A20;AF21;AF22;AF23;AF24;AF25;AF26;AF27;AF28;AF29;AF30;AF31;AF32;AF33;AF34;AF35;AF36;AF37;AF38;AF39;AF40;AF41;AF42;AF43;AF44;AF45;XF1;XF2;P1;END
;BLE-0230ABU;40000,00;;100000025;S;VERSEUR 29MM;BH0290ABU190I01;BLEDINA;69400;VILLEFRANCHE SUR SAONE;;111,38;BH0290ABU190I01;40000,00;PCE;170215;P;;1;100,00;OF000006;K;OF000006;;R;;PCE;Commission client;;40000,00;PCE;40000,00;PCE;UNITED CAPS MESSIA;39570 MESSIA SUR SORNE FRANCE;P01;;;;;CUS002474;;0;036610641000000258;0;63661064000055;02;4;2,00;TOTO est parti chez le boulanger pour acheter un croissant;END
1. 从事件数据中提取文档名称(该数据从触发文件中获取)
正则表达式会删除 /AF=" 之前及其本身,以及 " /PRN 之后及其本身的所有内容。以下是可直接复制使用的正则表达式:
(%BTW[\s\S]*\/AF=")|(" \/PRN[\s\S]*)
2. 从事件数据中提取打印机名称
与上一步类似,这一步会删除 /PRN 参数引号之间以外的所有内容。以下是可直接复制使用的正则表达式:
(%BTW[\s\S]*\/PRN=")|(" \/R[\s\S]*)
3. 删除命令脚本,以便“打印文档”操作可以像普通 csv 文件一样使用触发文件数据:
这个正则表达式会简单地删除前两行,保留剩余数据。以下是可直接复制使用的正则表达式:
(.BTW[\s\S]*END.)\u000D\u000A
编写自定义正则表达式时的注意事项
BarTender 在集成中使用 % 来表示变量。命令脚本中有两个这样的变量:%BTW% 和 %END%。如果你的正则表达式中包含两个 %,BarTender 会将它们之间的内容识别为变量,并可能提示警告:“无法应用转换,因为搜索条件包含一个或多个未解析的名称。”
如有可能,尽量避免同时使用两个 %。如果必须使用,比如上面用于删除命令脚本的正则表达式,可以用点号通配符代替 %,或者在操作中取消勾选“变量”选项:
使用提取的信息打印文档
最后一步是将所有这些信息填入“打印文档”操作中。利用你创建的变量,只需将它们添加到“文档”和“打印机”字段即可:
你还可以在这里使用从命令脚本中提取的其他信息,比如打印份数或你添加的自定义变量。可以像这样添加命名数据源,其中 %NamedVariable1% 就是你从命令脚本中提取的数据:
更多信息
如果你在使用正则表达式时遇到困难,或者不想使用正则表达式,可以尝试以下另一种提取信息的方法。
使用查找和删除
这种方法比前一种更繁琐。如果你不想用或不想修改正则表达式,这种方法很适合。对于每一项你想从命令脚本中提取的信息,都需要执行以下一系列查找操作:
1. 第一步查找 /AF=",然后删除其之前的所有内容:
2. 第二步删除第一步中用于查找的 /AF=":
3. 现在需要删除实际文件名之后的所有内容。由于我们无法预知文件名是什么,可以删除引号之后的所有内容,因为这将是查找到的第一个引号:
4. 和之前一样,需要删除引号。
现在你已经得到了 BTW 文件的路径和名称。对于每一项,比如打印机或其他你想从命令脚本中提取的信息,都需要执行这四个步骤。