I'm using a Brother QL580n label printer, but I'm sure any label printer that can be connected to a PC has a driver that would make the following code work. It works great, and prints directly to the print driver, so no need to keep up with a 3rd party app (Word, WordPro, etc).
The following code print perfectly to the Brother QL580n label printer. There was an article in InsideSesame this month to allow printing to Brother label printers, involving import and export, merge, a Windows VBscript file, and a downloaded Brother document object. But I like the simplicity and reliability of PrintString.
PrintLabel command button on my SalesOrder screen:

n Element Entry
var vSONum as String
var vClientID as String
var vSODate as Date
var vOrderer as String
var vClientPO as String
var vCount as Int
var vLoop as Int
var vAnswer as Int
var vFinal as Int
vSONum = @FORMFIELDVALUE("Orders","SONum",0)
vClientID = @FORMFIELDVALUE("Orders","ClientID",0)
vSODate = @FORMFIELDVALUE("Orders","SODate",0)
vOrderer = @FORMFIELDVALUE("Orders","Orderer",0)
vClientPO = @FORMFIELDVALUE("Orders","ClientPO",0)
If @Mode() < 2
{
vAnswer = @PromptForUserInput("How many labels for this order would you like to print?", "")
vFinal = @ToNumber(vAnswer)
vCount = vFinal
If vCount > 0
{
For vLoop = 1 To vCount
NewPage(840, 240)
PrintPageOrientation(2) // sets landscape orientation
AlternateDefaultPrinter("wcLabel1") // use the label printer
PrintString("ClientID: " + vClientID, 6, 6, 0, " ARIAL", 12, 0)
PrintString("Date: " + vSODate, 150, 6, 0, " ARIAL", 9, 0)
PrintString("For: " + vOrderer, 6, @PageExtentY(), 60, " ARIAL", 10, 0)
PrintString("ClientPO#: " + vClientPO, -1, -1, 0, " ARIAL", 10, 0)
PrintString("Sales Order #: " + vSONum, 6, @PageExtentY(), 0, " ARIAL", 10, 0)
PrintString("---------------------------------------------------", 6, @PageExtentY(), 0, " ARIAL", 10, 0)
PrintString("MyCompany xxx-xxx-xxxx", 10, @PageExtentY(), 0, " ARIAL", 9, 0)
FinishPage()
Next
RestoreDefaultPrinter() // return to default printer as printer
}
}