File Mover Blog

August 11, 2023

How to send zpl file to Zebra printer using Limagito file mover

Q: How to send zpl file to Zebra printer. Do you have a solution in Limagito to send Zpl files to a printer? Zpl is a standard language for label printers.
A: On request we added an option in Limagito File Mover v2023.8.10.0. The customer did some successful tests. These new options should be able to send other Zpl like type of files (EPL,..) to printers too.

  • In our example we used a Windows folder as Source, searching for zpl files:

limagito file mover windows folder as source

  • We enabled ‘Exclude Files In Use’ because we don’t want to touch source .zpl file that are still being created:

limagito file mover exclude files in use

  • Please set the Filename Include filter to *.zpl because we only need this type of files:

limagito file mover filename include filter

  • Our Rule will be triggered every 30 seconds using a scan timer (Schedule Setup button):

limagito file mover scan timer setup

  • As function we used ‘Move’ because after a successful print we want to delete the source .zpl file:

limagito file mover function setup

  • As Destination we are going to use a Script:

limagito file mover as Destination

Var
  iList: Integer;
  tmpInfo, tmpFile, tmpString: String;
  tmpList: TStringList;
Begin
  psExitCode:= 0;
  // ... add your code here
  tmpFile := psFilePath + psFileName;
  // Do Send
  tmpList := TStringList.Create;
  Try
    tmpList.CommaText := psGetPrinters;
    If tmpList.Count > 1 Then
    Begin
      For iList := 0 To (tmpList.count-1) Do 
        psLogWrite(1, '', 'Installed printer [' + IntToStr(iList+1) + ']: ' + tmpList.Strings[iList]);
      psLogWrite(1, '', 'Default printer: ' + psGetDefaultPrinter);
    End
    Else
      psLogWrite(1, '', 'No printer installed');        
    psLogWrite(1, '', 'Send file "' + tmpFile + '" to printer');
    Try
      tmpList.Clear;
      tmpList.LoadFromFile(tmpFile);
      If tmpList.Count > 0 Then
      Begin
        tmpString := tmpList.Text;
        // Method 1
        tmpInfo := psPrintRawString(tmpString, '');
        // Method 2
        // tmpInfo := psPrintRawList(tmpList, '');
        // Debug
        If tmpInfo <> '' Then
        Begin
          psLogWrite(1, '', 'Sent to printer error: ' + tmpInfo);
        End Else
        Begin
          psExitCode := 1;  
          psLogWrite(1, '', 'Sent to printer successfully: ' + tmpFile);
        End;
      End
      Else
      psLogWrite(1, '', 'Found empty file: ' + tmpFile);
    Except
      psLogWrite(1, '', 'LoadFromFileError: ' + tmpFile);
    End;
  Finally
    tmpList.Free;
  End;
End.

The script above will load the content of the .zpl (or other raw type of files) and will send this data to a selected printer.

        // Method 1
        tmpInfo := psPrintRawString(tmpString, ”);

By default we’ll use the ‘Default’ printer in Windows which means the Zebra printer should be set as Default printer. If you want to use a Zebra printer that is not set to default in Windows you’ll need to add the printer name to the function.

Suppose the installed Zebra printer name is: My Zebra Printer

        // Method 1
        tmpInfo := psPrintRawString(tmpString, ‘My Zebra Printer’);

To help you with the printer names, the script will wrote the names in the RunTime log if you trigger the Rule (please check the output of the RunTime log in the screenshot below).

limagito file mover send zpl file to Zebra printer

  • RunTime Log result:

limagito runtime log

If you need any info about this new ‘zpl file to Zebra printer’ option, please let us know.

#zpl #zebra #filetransfer #filemanagement

Best regards,

Limagito Team

By Limagito-Team Pascal Script Printer , , , Share:
SEARCH