自动加载 CSV 用于批量打印标签(Brother P-touch Editor v5.1)

自动加载 CSV 用于批量打印标签(Brother P-touch Editor v5.1)

我的目标是根据定期创建的 .csv 文件自动为电子商务网站打印运输标签。

我已经准备好了 .csv 文件。我还在 P-Touch Editor 中准备好了运输标签模板。此应用程序允许连接到“数据库”(在本例中为 .csv 文件的形式)并填充字段。

此时,我需要自动执行在 P-Touch Editor 中打开标签模板并连接到最新的 .csv 文件的过程,然后打印所有标签。由于我运行的是 OS X,Applescript 最初似乎是显而易见的选择,但 P-Touch Editor 似乎不支持它。我陷入困境,正在寻找一种与 P-Touch Editor 通信的方法,或者在其他应用程序中自动创建标签并从那里打印。

作为替代方案,我正在考虑从我的电子商务网站导出一个 html 页面并设置适当的页面尺寸和分页符,然后打印它。

有没有人和我遇到过类似的情况或知道解决办法?最终的目标是永远不需要手动打印标签,每天只需拿起一堆货物开始打包即可。

答案1

您可以生成标签模板并将其上传到打印机。在模板中,您可以为每个字段(文本、条形码等)定义 ID。接下来,您可以直接通过网络打印,并为每个 ID 从您的网站发送正确的数据。然后,打印机将数据填充到模板中并打印出来。我在我的 iPad 上这样做了,以便从自定义应用程序自动打印标签。对于网络打印,我通过 WLAN 使用 QL-720NW。然后使用端口 9100 上的 RAW 进行打印以推送数据。打印命令在 ESC/P 命令参考手册中有说明。

答案2

Applescript解决方案:

虽然 Brothers 的“P-touch Editor”(v5.1)不支持 Applescript,但您可以使用“系统事件”应用程序来指示进程执行任务。这通过操纵 GUI 来实现,我个人不喜欢这种方法,但它确实有效。

为了做到问题中提到的,我编写了以下 Applescript(这仅在 OS X 10.10.1(Yosemite)上相当受控的环境中进行了测试,使用 P-touch Editor v5.1 和 Applescript v2.4)。

# set the location of the 'database'

set prepareShipments to "/some/dir/list.csv"

# set variables to identify the label the needs to be printed and the list containing the dataset
set templateDir to "/some/other/dir"
set templateName to "someTemplate"
set templateExt to ".lbx"
# open the template, my default application for this filetype is "P-touch Editor"
do shell script "open " & templateDir & templateName & templateExt
# "System Events" will tell its process "P-touch Editor" to perform our desired tasks
tell application "System Events"
    #hold-up while application is loading and set it to the 'frontmost' or active process
    repeat until frontmost of process "P-touch Editor" is true
        tell process "P-touch Editor" to set frontmost to true
    end repeat
    
    # actually start telling P-touch Editor what to do:
    tell process "P-touch Editor"
        # wait for template to open..
        repeat until exists window templateName
        end repeat
        
        # 'connect...' to database, if already connected (then the menu item is not clickable), choose to 'change...' the database instead
        click menu item "Connect..." of menu "Database" of menu item "Database" of menu "File" of menu bar item "File" of menu bar 1
        click menu item "Change..." of menu "Database" of menu item "Database" of menu "File" of menu bar item "File" of menu bar 1
        
        # hold-up until dialog window exists
        repeat until exists window "Open Database"
        end repeat
        
        # enter the location of the new 'database'
        set value of text field 1 of window "Open Database" to prepareShipments
        # my csv file does not contain headers. So uncheck the 'Header Row Contains Field Names' box
        if value of checkbox "Header Row Contains Field Names" of window "Open Database" is 1 then
            click checkbox "Header Row Contains Field Names" of window "Open Database"
        end if
        
        # just keep swimming...
        click button "Next" of window "Open Database"
        click button "OK" of window "Open Database"
        
        # database is connected to template; time to print
        click menu item "Print..." of menu "File" of menu bar item "File" of menu bar 1
        click button "Print" of sheet 1 of window templateName
        
        # printjob has been issued, time to wrap up. Close the window
        click menu item "Close" of menu "File" of menu bar item "File" of menu bar 1
        # changes have been made, give some time for the 'save changes' dialog to pop up.
        delay 0.5
        # if it did pop up, tell it to not save the changes (using short-cut '[cmd] + [down arrow] + d')
        if exists window 1 then
            if name of window 1 = templateName then keystroke "d" using command down
        end if
        # do a regular quit, we do not know if any other unsaved windows are open, or whether we want to keep those changes, so do not force any 'do not save' actions.
        click menu item "Quit P-touch Editor" of menu "P-touch Editor" of menu bar item "P-touch Editor" of menu bar 1
    end tell
end tell

#now that printjob is finished and P-touch Editor is quit, add some additional script for cleaning the inventory, moving printed .csv files to archived folder.

请参阅上述脚本中的注释以了解其作用。当然,这可以改进以考虑更多情况,但我个人将在受控环境中运行它。最有可能是连接到打印机的无头 Mac Mini。

备选答案(更适合 Windows 用户):

正如 @Hannu 提到的,有一个“标签 SDK”可用兄弟的网站称为“b-PAC SDK”。从技术上讲,它允许使用以下方法之一自动连接数据库这个文件,但需要 windows 环境。由于我的 web 服务器运行在 Linux 上,而我的客户端都运行 OS X,因此我目前无法进一步测试这一点。然而,这似乎是一个更“优雅”的解决方案。因为我不喜欢用脚本来操作 GUI。这似乎非常低效。

答案3

P-touch 编辑器应该可以自行完成此操作,至少我使用的 v5.x 版本(Windows)是这样的。
我经常将 Excel 工作表自动筛选列表作为源数据库。

打开数据库,
然后将字段插入标签,
然后就可以开始了。

由于我在家里无法获得这些,所以我无法创建更详细的指南。

相关内容