Preface

The purpose of RSJ Label Printing System is the printing of labels and price tags.

The special feature of LPS is the flexible adaptability to different Host-systems and printer types.


System requirements

The following requirements have to be met in order to use RSJ Label Printing System:

  • IBM compatible PC with 80486 Prozessor or later
  • Windows NT version 4 SP6 or later
  • Network with named pipe support
  • MS Windows Scripting Host (WSH) version 5.6 or later


Modules of the RSJ Label Printing System

Modules of RSJ Label Printing System

RSJ Label Printing System is divided in different modules. The modules are:

LPS Daemon
Main modul of RSJ Label Printing System. LPS Daemon is running in the background and controls all the activities (receiving of printer jobs, printing, communication with the Spool Controller,...)
Spool Controller
The Spool Controller is a GUI frontend that controls LPS. It is connected with LPS Daemon through a named pipe. That's why it can run on a remote system, too. In such case the requirement for the remote system is a named pipe connection with LPS daemon.
Printing driver
The printing driver transform the printing commands from the WSH script program into specific control commands.
SNAFT
Receives the Host-systems printer jobs through a SNA-connection.
Status NT
Shows the operating status of SNAFT.


Allgemeines

Installation

The installation is subject to unique agreements between you site and RSJ Software. Consult the accompanying documentation or ask your system administrator for further details.

If you want to prepare an installation, please observe the following:

  • Create a directory structure as described here.
  • Share the LPS installation directory; use the share name "LPS$"
  • Register the LPS system daemon lpsd.exe (use lpsinst.exe)
  • Create the required registry keys and settings (see chapter "Configuration")
  • Create a SpoolController shortcut with the LPS machine name as the only parameter


General Information

Directory structure

Use the following directory structure to install LPS:

  C:\              root directory
    lps            program files
      jobs         printer jobs
      incoming     directory for incoming files
Noe:

All directories have to be on one drive. This allows moving the files through the MOVE-command.

The program directory contains all executable programs and modules:

COSYS.DLL
driver for COSYS TD-2600 printer
EPSON.DLL
driver for Epson DXF-8000 printer
MONARCH.DLL
driver for Monarch printer
EAN.DLL
EAN module for LaserJet and Monarch driver
*.FNT
Softfonts for Epson printer
*.PGM
LA applications (contain the label printing program)
LASERJET.DLL
driver for HP LaserJet PCL5 printer (or compatible)
GABI.DLL
driver for printer with GABI Interface
HOSTEXIT.DLL
convertion module for HOST-files (in general this counts only the number of the labels)
LA.EXE
LA Modul (executes the label programs)
MEMOREX.DLL
driver for Memorex printer
*.CFG
configuration files for LPS Daemon
SYSTEM.DAT
Include-file for the LA-application
LPSD.EXE
LPS Daemon. This program ist started in the background and controls LPS.
SPOOLCTL.EXE
The Spool Controller. This program creates a connection to LPS Daemon through named pipes. It shows the system status and is responsible for starting, finishing and transmitting, ... printer jobs.


Konfiguration

Configuration

This section describes the configuration of LPS's single components.


LPS Daemon (system service)

LPS Daemon gets configured through the entries in the Windows NT Registry. The entries are as general as possible to facilitate an automatical configuration. In generel it is sufficient to define the names of local LPS Daemons and the network paths of the partner systems; you don't have to change the other settings.

You can find the entries at the following path:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RSJ_LPS_Daemon\Parameters


Database Info

This path includes all information concerning the database format within a label system. The following entries are possible:

Config File
Name of the database configuration file. You will find furhter information concerning the content of this file in the sector Database-configuration
Example: "c:\lps\database.cfg"


LPS Daemons

This registry path includes all information about all LPS systems within a domain. Every label system has its own subkey; the name of the subkey is used as the name of the appropriate label system within SpoolController.

Besides these subkeys there are the following keys in this path:

Local LPSD
Name of the local label system. This entry is necessary to find the difference between the local label system and other systems within the domain. It includes the title of the subkey which contains the configuration files of the local label system.
Local LPSD Wait
Displays the number of seconds that the LPS service waits until it starts. This makes sense if during the start of the service or the operating system the error message "the network name was deleted" appears (this happens if the network function of the system is not available during the start of LPS service).
Job Path
Names of the directory the LPS service should monitor for new jobs. The print job are put in files with the names "jobxxxx". "xxxx" represents a unique combination of digits.

Within the subkeys there are the following entries:
Transfer path
Name of the directory where it is searched for print jobs. Every file which is in this directory is copied to the directory job path after the conversion as print job. After the coping the file is deleted automatically. This directory should be displayed as UNC-path.
Printer Subsystem
This path includes all information about all printer which are connected to the label system. Every printer is represented with a subkey; the name of the subkey is used as name of the appropriate printer within the SpoolController at the same time.

Within the subkeys there are the following entries:
Program file
name of the label program
Output device
printer interface (for example LPT1) or Windows-printer name; printer names have to be displayed with a star:
*label printer
Printer driver
name of the printer driver
Auto Start
Use this parameter to start the print jobs automatically. Every time a new print job was received the Header-information of the print jobs get compared with the content of this field. If there is a consens the print job is started. You will find furhter information concerning the structure of this field at Autostart.
COM Setup
If the Output device is a serial interface (COMx) this entry can transmit a MODE parameter-string. With this parameter string the interface gets initialized.
SoftFontAutoRefresh
A DWORD entry. If this entry is set to != 0 it conduces to an automatic reload of all used SoftFonts and images during the start of print jobs (valid for LaserJet and Monarch printers only).


Config File (.cfg)

LPS Config File (.cfg)

The record format is defined in a single text file (cfg file). This file also includes definitions about SpoolController display columns and Immediate Print fields.

Addiotionally, you define host translation tables to convert host records into PC character sets or the like.

The config file has the following structure:

 RECORD     <record name>
 RECLEN     <record length>
 EXTRA      <number of characters to be appended to each record>
 SKIP       <number of characters to skip>
 HOSTDLL    <name of host translation DLL>
 TRANSTBL   <name of translation table>
 RECTYPE    <FIXED | DYNAMIC>
 CNTFIELDNO <numer of field that contains the label count>
 FIELDINFO
   #1 : Cust    CHAR * 20 AT 0  DEFAULT=BLANKOUT FLAGS=JOBTITLE
   #2 : Article CHAR * 15 AT 20 DEFAULT=COPYLAST FLAGS=JOBTITLE,IMMEDIATE
   #3 : Amount  CHAR * 5  AT 35 DEFAULT="1" FLAGS=IMMEDIATE
 END FIELDINFOEND

 RECORDTRANSTBL <name of translation table>
   EXCEPTION AT <offset>
     "A"     -> "B"
     "C"     -> "D"
     DEFAULT -> "X"
   END EXCEPTION
   GENERAL
     TABLE <name of general translation table>
       oder
     FILE <name of file containing translation table>
   END GENERAL
 END TRANSTBL

 TABLE <name of general translation table>
   0x00, 0x20, ...
 END TABLE

 LABELMASK <name of immediate print mask>
 #1: <default text> FLAGS=READONLY,HIDDEN
 #2: <default text>
 #3
 END LABELMASK
Notes
  • Any of the three main sections (RECORD, TRANSTBL, LABELMASK und TABLE) can occur any number of times.
  • If more than one record definition is available, the host-dll is used to identify the current record
  • The "general translation table" contains up to 256 comma separated numbers that are used to convert between different character codes (e.g. EBCDIC/ASCII). The code to be converted is used as an index into this table.
  • Translation table files must be in binary form (256 bytes length)
  • The "CNTFIELDNO" entry specifies the number of the field in the following FIELDINFO section that contains the label count (number of labels to be printed). In the example above, this would be 3 (reference to #3 : Amount)
    If CNTFIELDNO is omitted, each record is assumed to have a label count of 1
  • LABELMASK defines an Immediate Print form; click here for more information.


Defining Immediate Print Forms

Immediate print masks (or forms) can be defined in the CFG file of the Label Printing System. These masks allow to exactly defined which fields of the mask are initialised, user editable or visible.

Syntax

 LABELMASK <Name of mask>
 #1: <default text> FLAGS=READONLY,HIDDEN
 #2: <default text>
 #3
 END LABELMASK
  • Name of mask must be specified in double quotation marks.
  • The number after the hash sign references the field number in the FIELDINFO section of the config file.y/li>
  • default text und FLAGS are optional
  • The colon behind the field number may only be present, if either default text or FLAGS are used.
  • FLAGS= may be used only if default text is present

Sample

 LABELMASK "Klebe-Karton Etikett"
  #1 : "00001" FLAGS=READONLY, HIDDEN
  #2
  #3 : "Schnapsglasset 50teilig"
  #4 : "0000012345"
  #5 : "EAN1234565"
  #6 : "WG"
 END LABELMASK

 RECORD SAMPLE

  .
  .
  .

   FIELDINFO
    #1  : Menge                    CHAR    * 5   AT  86  FLAGS=IMMEDIATE
    #2  : Etikettenformat          CHAR    * 2   AT 199  FLAGS=IMMEDIATE
    #3  : Artikelbez               CHAR    * 60  AT 233  FLAGS=IMMEDIATE
    #4  : VK_Preis_Euro            CHAR    * 10  AT 217  FLAGS=IMMEDIATE
    #5  : EAN                      CHAR    * 13  AT 118  FLAGS=IMMEDIATE
    #6  : WG_2stellig              CHAR    * 2   AT  34
    #7  : Abteilung                CHAR    * 2   AT  36

  END FIELDINFO
 END RECORD

Calling SpoolControllers Immediate Print command displays the following dialog:

The user can choose between the default mask (defined using FLAGS=IMMEDIATE in the cfg file) and the label mask named "Klebe-Karton Etikett".

Choosing "Klebe-Karton Etikett" displays the label mask as follows:


SpoolController

The SpoolController does not require a manual configuration through the Windows Registry. If needed, the following options are available:

NoAutoStart

This option avoids that the Autostart-option is available in the printer's menues and that it cannot be set with the SpoolController. NoAutoStart is a DWORD-value which can be set on the following places in the Windows Registry:

 HKEY_LOCAL_MACHINE\Software\RSJ Software GmbH\RSJ Spool Controller NT or

 HKEY_CURRENT_USER\Software\RSJ Software GmbH\RSJ Spool Controller NT

A value below HKEY_LOCAL_MACHINE is valid for all users. Is the value set below HKEY_CURRENT_USER this value is used and the value below HKEY_LOCAL_MACHINE is ignored.

If there is no value or if it is set to 0, the Autostart option is not available in the SpoolController.

Notes:
  • The NoAutoStart option is available in the SpoolController since version 1.18
  • This option ca be set globally on LPS Server (since LPS Daemon version 1.30, SpoolController version 1.30)


Autostart

The autostart automatically starts the print jobs on special printers. After a new print job was received, the autostart search term of each printer is compared to the job data; if it matches the job is printed immediately.

You will find the autostart search term in the printer path - under the key autostart - of the Windows NT Registry. The syntax for the autostart search term is defined in the following way:

 <Field>=<search term> [<Field>=<search term> ...]

Token | Describtion
Field | Name of the field which is in the printer job. This content has to be compared with the specified value
Search term | The search term has to be compared with the specified field in the printer job. The search term can include the signs ? (any single sign) and * (any sequence of signs, that means 0 or more sequently signs).

The fields in the printer jobs have to be completed with blanks. That's why you have to adapt the serach terms in the right way. The search terms should beginn or be closed with a star (*) or a questionmark (?) to recognise the blanks as valid signs.

Any specifications in the search term have to be reached at the same time to start a special print job automatically.

If there should be more different valid search terms for one single field, you can specify more than one search terms in a row. The single search terms get separated through semicolas (;).

Example:

 Departement=001;002;003 Printer=01

This example shows that three search terms ("001", "002" and "003) are accepted for the field "Departement". The field "Printer" has to include the value "01".


Activation of the Autostart-function

Activation of the Autostart-option

To activate the Autostartfuncion the DWORD entry "Enable Autostart" has to be set to 1. You will find this entry in the registration database in the key of the printer. If there is no entry or if it is set to 0 the print does not start.

You can set this value automatically using the SpoolController-program. Use the command "Print automatically". You will find this command in the context menu of the printer. This function is active if there is a "Häkchen" next to the command.


Activation of the Autostart-function

Removing the command "Print automatically"

You can inactivate the command "Print automatically" in the SpoolController. To do this you need some entries in the registration database. After that the menu entry is greyed out and you can not click on it. The needed entry always is a DWORD-value with the name NoAutoStart. The following list shows the possiblities:

Machine | Registration key | Einflußpereich
LPS Client (machine where the SpoolController is running) | HKEY_CURRENT_USEER\Software\RSJ Software GmbH\RSJ Spool Controller NT | Only one user of this machine (the user which is logged in)
LPS Client (machine where the SpoolController is running) | HKEY_LOCAL_MACHINE\Software\RSJ Software GmbH\RSJ Spool Controller NT | All user of this machine
LPS Server (machine where lpsd.exe is running) | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\RSJ_LPS_Daemon\Parameters | concerns all connected SpoolControllers

If the entry on LPS server is set to 1 and the entry on the SpoolController system is 0, the command is available on the SpoolController.


Error log

If there are problems with the label system please check the error log. This file includes all messages from the sysem service and from the printer driver. You will find the file on LPS server - that means you will find it on the machine where LPS system service is running, in the root directory of the start partition. The file is called rsjerr.log.

 c:\rsjerr.log


Print system

The print system LA.EXE executes the print program (*.pgm) and controls the printing.

The following user-functions are available:

Print
Prints a complete job. All labes within the job are transmitted to the print program and they are printed.
Print immediately
Prints a single label. You will see an interface on the screen where you can insert the label fields. You can determine the number of labels which should be printed.
Restart
Use this function to restart a print job. The evaluation of the restart-information happens in the print program. Here, normally the page number is specified.
Positioning
To adjust the endlees paper you can print a label line with this function. The labels get filled with place markers.

Call up this function using the SpoolController-application which is described below.


SpoolController

RSJ Spool Controller is the graphical frontend application of LPS. It provides an overview of available print jobs and means to print, delete and transfer jobs to different LPS machines.


Launching Spool Controllers

Launching Spool Controller

The SpoolController front end is launched with a single argument: the name of the machine where the LPS system service is running:

  spoolctl ps2ad

If this argument is omitted, SpoolController will prompt for the LPS service machine name.


Screen

The spool controllers screen is divided into two parts by a movable separator line. The upper half contains a columned list of available jobs, the lower part a symbol list of available LPS devices (printers and controllers).


Job List

The upper half of the SpoolController screen contains the job list. The number of the columns and their names are set in the CFG file parsed by the LPS system service.

Every job entry has its own symbol. The symbol shows the status of the job entry:

Symbol | Description
 | job was printed
 | job was received
 | job is being printed
 | job is being launched
 | job is being transmitted
 | job was stopped
 | job is waiting
 | job was edited


Device List

The device list at the bottom of the SpoolController screen contains all available LPS devices (printers and controllers). Their icons reflect the device's status:

Symbol | Description
 | controller is up and running
 | controller receives files
 | printer is ready
 | printer initialising is running
 | printer has a failure
 | printer was stopped
 | printer is printing
 | printer status is unknown


Drag and Drop

Jobs can be printed or transferred to other LPS controllers by drag and drop. If jobs are dropped on a printer, they are printed; if dropped on a controller, they are transmitted.


Main Menu

The main menu contains all commands and functions which are necessary to work with LPS jobs or devices.

If one of the menu functions cannot be executed the menu entry is deactivated. In the following chapter you will get more information concerning the menus.


Context menus

The context menu's commands are the same as the main menu's commands. The different context menus include the following commands:

Job-context menu

  • Delete
  • Transmit
  • Print

If you choose "Transmit" and "Print", a submenu containing all possible targets (printers/LPS controllers) of the operation.

Printer-context menu

  • Start Printing
  • Restart
  • Cancel Printing
  • Immediate Print
  • Position Tractor
If the spool controller is running on the same system as the LPS system service, the context menu of the Monarch - printer includes an entry Configuration. With this entry you can administrate the printer's memory. See specifications of Monarch - printer for more details.


Tool Bar

The tool bar offers quick access to frequently used menu commands.

The following functions are available:

Symbol | Function
 | transmits job(s) to the controller
 | prints job(s) on the printer
 | deletes job(s)
 | starts printing immediately
 | Traktor positionieren
 | calls up the online help's search dialogue


File Menu

The File menu contains the following commands:

Start Transmission
Transmits the selected jobs onto the selected LPS controller.
Delete
Deletes the selected jobs. If there is no job selected this command is not available.
Exit
Ends the program.


Options menu

The menu Options contains the following commands:

Confirmations
Allows you to define which SpoolController actions prompt for a confirmation before they are executed.


Print Menu

The Print menu contains the following commands:

Start printing
Prints the selected jobs on the selected printer. You have to select one job and one printer at least, otherwise this command is not available.
Restart printing on...
This menu entry opens a submenu which contains all available printers. If no job is selected the menu includes only a deactivated entry.
After clicking one of the listed printers, the dialog "Printer Restart" appears and prompts for a restart id. The meaning of this ID depends on the implementation of the underlying print program; it is usually a page number. The print program receives the restart id via the job.restartID property.
Cancel printing
Cancels the print job on the selected printer. If no active printer is selected this option is deactivated.
Immediate Print
Opens a window where you can enter the label's parameters for immediate printing. This allows printing of labels without a job (data record). This menu entry is deactivated if no printer is selected.
Position Tractor
Prints a positioning aid on the selected printer. A printer has to be selected.
Reload SoftFonts
Reloads the SoftFonts which were previously loaded by the addFont() command; this option is only available for printers which use the Monarch or LaserJet drivers.


View Menu

The View menu contains the following commands:

Tool Bar
Toggle tool bar visibility
Status Bar
Toggle status bar visibility
Eerror Log
Displays the local systems LPS error log. The SpoolController has to run on the same machine as the LPS service, otherwise the log file is not available.


Windows Scripting Host and RSJ LPS

Since version 3.0, WSH based script-languages are supported to create print programs.

WSH supports JScript and VBScript. You can use any script language to create LPS printer programs provided this script language is able to work with COM objects. We recommend programming in JScript; all sample programs in this documentation are in JScript.

LPS requires Windows Script Host version 5.6 or later; more information about WSH is available at www.microsoft.com/scripting.


Creation of PrinterPrograms

All WSH-programs have to be initialized with the same sequence of commands:

  • Object creation
  • Pass first argument to the JobProvider-object
  • Pass printer driver name to the printer-object

JScript code:

/* Creation of objects */
var jobProv = new ActiveXObject("LPSCOM.JobProvider");
var printer = new ActiveXObject("LPSCOM.Printer");
var parser = new ActiveXObject("LPSCOM.JobParser");

/* pass first argument to the JobProvider Object */
var arg1 = WScript.Arguments(0);
jobProv.initialize(arg1);

/* pass printer driver to the printer-object */
printer.driver = jobProv.printerDriver;
After the initialization, an endless loop follows. This loop waits for new jobs:
for (;;) { // endless loop

  // getNextJob waits until a job is available
  var job = jobProv.getNextJob();
  [...]
  }

Within the endless-loop ("job loop"), the print job is parsed into single records; these records are then parsed into separate data fields as defined in the CFG file. The label then is printed using the field values of a record:

for (;;) {

  /* wait for a new job */
  var job = jobProv.getNextJob();

  /* initialize printer-object  */
  if (printer.initJob(job) == false) {
    /* important:
     * if Printer.initJob() returns 'false', the job does not include data and
     * has to be ignored.
     */
    continue;
    }

  /* parse job */
  parser.parseJob(job);

  /* parse first record */
  if (parser.readFirstRec() == false) {
    WScript.Echo("failed to parse first record");
    WScript.Quit(1);
    }

  /* Record-loop */
  do {

    <print label>

    printer.text(parser.getField("amount"));

    } while (parser.readNextRec());

  } /* end of job-loop */
Further information:
Sample program
Program template for your own developments


Sample program (JScript)

/******************************************************************************

  test1.js - test script file for windows scripting host support in LPS

  Author: Markus Mueller, RSJ Software GmbH

******************************************************************************/

/* object creation */
var jobProv = new ActiveXObject("LPSCOM.JobProvider");
var printer = new ActiveXObject("LPSCOM.Printer");
var parser = new ActiveXObject("LPSCOM.JobParser");

/* pass first command prompt argument
 * to the jobprovider
 */
var arg1 = WScript.Arguments(0);
jobProv.initialize(arg1);

/* pass driver name to print-object */
printer.driver = jobProv.printerDriver;

for (;;) { // job-loop

  /* wait for new jobs from the system service */
  var job = jobProv.getNextJob();

  /* Initialization printer/job */
  if (printer.initJob(job) == false) {

    /* iniJob() returns 'false' -> job is empty */
    continue;
    }

  /* analyze job */
  parser.parseJob(job);

  /* parse the first record */
  if (parser.readFirstRec() == false) {

    WScript.Echo("error during parsing the first record!");
    WScript.Quit(1);
    }

  /* record-loop */
  do {

    /* print "amount" */
    printer.font("Helvetica [12]");
    printer.pos(100, 100);
    printer.text("amount:" + parser.getField("Amount"));

    /* print "Price" */
    printer.font("Helvetica [18]");
    printer.pos(100, 300);
    printer.text("Price:" + parser.getField("VK_Price_Euro"));

    .
    .
    .

    } while (parser.readNextRec()); // end of record-loop

  /* end of job-loop - finalize job */
  parser.closeJob();
  printer.endOfJob();
  }


JScript template

JScript-program template

The JScript template simplifies the creation of new JScript-programs for RSJ LPS:

save template in file


LPS Object Hierarchy

LPS Hierarchy

The LPSCOM.DLL module provides the following COM-objects to access LPS functionality from within script programs:

Name ProgId Description
JobProvider LPSCOM.JobProvider
  • receives print jobs of the system service
  • parses LPS configuration
            •
    JobParser LPSCOM.JobParser
  • divides the jobs into single records
  • parses records into data fields as defined in the CFG file
            •
    Printer LPSCOM.Printer
  • implementation of print methods (text, pos, ...)
  • communication with the printer
            •


Job object

Purpose

The job object is returned by the JobProvider.getNextJob()-method. It represents a single print job.

Methods
none
Properties
restartID
Returns the Restart-ID, which was inserted by the operator during the call up in the spool controller.


Job.restartID Setting

Purpose

Returns the restart ID entered into SpoolController's restart dialog (usually a page number).

Syntax
job.restartID;
Parameters
none.
Expample
for (;;) {

  /* wait for new print jobs from the system service */
  var job = jobProv.getNextJob();
  .
  .
  .
  /* Datensatz-Schleife */
  do {

    /* Restart? */
    if (job.restartID != 0 &&
        currentPage < job.restartID) {

      /* ignore records until Restart-ID is reached */
      continue;
      }

    /* print "Menge" */
    printer.font("Helvetica [12]");
    printer.pos(100, 100);
    printer.text("Menge:" + parser.getField("Menge"));
    .
    .
    .
    }

  .
  .
  .
  }


JobParser object

Function

The JobParser object reads the job files, divides them in single records and parses the data into single fields.

Methods
getField
returns the content of a specific field
parseJob
parses a job file
readFirstRec
parses the first record of a job
readNextRec
parses the next record of a job
Settings
none


JobParser.closeJob method

Purpose

Closes the current job file and deallocates job specific resources.

Syntax
jobParser.closeJob();
Parameters
none
Example

  /* record loop */
  do {

    Verarb_Nr               = parser.getField("Verarb_Nr");
    Abt_Nr                  = parser.getField("Abt_Nr");

    [...]

    } while (parser.readNextRec());

  print_label_trailer(printer);
  printer.eject(PRIMARY);
  parser.closeJob();
  printer.endOfJob();
  }


JobParser.getField method

Purpose

Parses the field value of the current record and returns it.

Syntax
jobParser.getField(
  fieldName
  );
Parameters
field name name of the field which should be returned; this name has to be defined in the CFG file.
Example
printer.pos(1000, 150);
printer.text(jobParser.getField("Kolli-VK"));


JobParser.parseJob method

Purpose

parses a job file

Syntax
jobParser.parseJob(
  Job
  );
Parameters
Job job object returned by the JobProvider.getNextJob() method.
Example
jobParser.parseJob(job);


JobParser.readFirstRec method

Purpose

parses the first record of a job.

After calling readFirstRec() or readNextRec(), data field values can be extracted using the getField() method.

Returns false if the record cannot be read.

Syntax
jobParser.readFirstRec();
Parameters
none.
Example
  if (jobParser.readNextRec() == false) {
    WScript.Echo("Failed to read first job record");
    WScript.Quit(1);
    }

  /* Record-Schleife */
  do {
    .
    .
    .
    } while (parser.readNextRec());


JobParser.readNextRec method

Purpose

Returns the next record of a job. Before using this command readFirstRec() has to be successfully called.

After calling readNextRec() or readFirstRec(), the single field values can be extracted using the getField() method.

Returns false if the current print job does not have any more records.

Syntax
jobParser.readNextRec();
Parameters
none.
Example
Please look at the example of readFirstRec().


JobProvider Object

Function

The JobProvider object parses the LPS configuration (CDFG file) and receives print jobs of the LPS system service.

Methods
getNextJob
waits until the system service sends a new print job and returns it
initialize
initialises the print system
message
shows a message in the system log
Properties
printerDriver
returns the name of the printer driver


JobProvider.getNextJob Method

Purpose

Waits for a system service's print job and returns it.

Returns a Job object which has to be passed to certain methods (for example printer. initJob())

Syntax
jobProvider.getNextJob();
Parameters
none.
Example
for (;;) {

  /* waits for new print jobs of the system service */
  var job = jobProv.getNextJob();
  .
  .
  .
  }


JobProvider.initialize Method

Function

initializes the print system

Syntax
jobProvider.initialize(
  arg1
  );
Parameters
arg1 first argument which was passed to the script program.
Example
var jobProv = new ActiveXObject("LPSCOM.JobProvider");

var arg1 = WScript.Arguments(0);
jobProv.initialize(arg1);


JobProvider.message method

Purpose

Sends a message to the system log.

Syntax
jobProvider.message(
  text
  );
Parameters
text text to be displayed
Example
jobProv.message("Eine gute Nachricht kommt auch an.");


JobProvider.printerDriver properties

Purpose

Returns the name of the printer driver that should be used.

The name of the driver has to be transmitted to the Printer-Object (see example)

Syntax
jobProvider.printerDriver;
Parameters
none.
Example
var jobProv = new ActiveXObject("LPSCOM.JobProvider");
var printer = new ActiveXObject("LPSCOM.Printer");

printer.driver = jobProv.printerDriver;


Printer object

Purpose

The printer object exports print methods and communicates with the printer.

Methods
addFont
Loads a SoftFont from a file to the printer
breakPos
Detects a possible break position within a string
color
Sets the new foreground colour
eject
Ejects the current page
endWindow
Sets the highest write position
euroConv
Converts currencies from/to Euro
font
Sets the font
initJob
Initializes the printer with job-specific files
labelSize
Sets the label size on Monarch printers
loadImage
Loads an image from a file and sends it to the printer
pos
Sets the current print position
printImage
Prints an image
rtext
Prints right justified text
setSupplyType
Sets the label type
text
Prints a text at the current position
vector
Draws a line
window
Sets a new reference point for print coordinates
Properties
driver
Sets the printer driver which should be used
sysway
Returns the start mode


Printer.addFont method

Purpose

Loads a Softfont from a file to the printer (only LaserJet- and Monarch printer).

Please note: Notes for using the Monarch-printer

Syntax
printer.addFont(
  filename,
  fontname
  );
Parameters
filename | name of the SoftFont-file
fontname | name wich is used to reference the Font with the font method.
Example
printer.addFont("fonts\\frutiger.pcl", "frutiger");
.
printer.font("frutiger [10]");
printer.text("Im Frutiger-Font!");


Printer.angleTtext method

Printer.angleText method

Purpose

Prints the specified text on the current print position with a specified angle (diagonal print).

Notes:

  • angleText is supported on PCL-printers (LaserJet and compatible ones) only
  • works with Soft Fonts only, i.e. the current Font has to be a Soft Font.
  • does not work with Barcode-Fonts

Syntax
printer.angleText(
  angle,
  text
  );
Parameters
angle | angle which is relative to the normal write direction, counterclockwise
text | text to be printed
Example Output
Example Code
printer.pos(1000, 200);
printer.angleText(33, "Total schief ist das.");


Printer.breakPos method

Purpose

Detects the position for a possible break within a string and returns it.

Possible break positions are (syllable division is not supported):

 . : , - = [space] / * + ~ &
Syntax
printer.breakPos(
  string,
  start,
  ende
  );
Parameters
string | string which should be breaked
start | position in string where the search for a break position is to beginn
ende | last position to ckeck for breakable characters
Notes
  • The return value is the position of the breakable character
  • If the return value is 0 the string doesn't has to be seperated
  • If there is no breakable character within the area of start and end, the value of end is returned.
Example
var break_pos = printer.breakPos("Da wird Krach gemacht", 5, 9);
if (break_pos != 0) {
  /* row have to be broken */
  [...]
  }

The return value in this example is 8 (space between "wird" and "Krach").


Printer.color method

Purpose

defines the new foreground color; this is supported by LaserJet-printers (PCL) only

Syntax
printer.color(
  red,
  green,
  blue
  );
Parameters
red | red part in values from 0 - 255
green | green part in values from 0 - 255
blue | blue part in values from 0 - 255
Example
printer.color(255, 0, 0);
printer.text("red");

printer.color(127, 0, 0);
printer.text("dark red");


Printer.eject method

Purpose

Ejects the current page.

Syntax
printer.eject(
  Paper compartement
  );
Parameters
PaperTray Tray which should be used:
0: Primary
1: Secondary
2: Manual
Example
printer.eject(0);


Printer.endOfJob method

Purpose

Ends the current job; must be called at the end of the job loop (see example below).

Syntax
printer.endOfJob();
Parameters
none
Example
for (;;) {

  /* waits for new print jobs of the system service */
  var job = jobProv.getNextJob();
  .

  if (jobParser.readNextRec() == false) {
    WScript.Echo("Failed to read first job record");
    WScript.Quit(1);
    }

  /* Record-loop */
  do {
    .
    } while (parser.readNextRec());

  /* End of job-loop - finalize job */
  printer.endOfJob();
  }


Printer.endWindow method

Purpose

States that no printing will occur anymore above the current position. This command allows printing on printers which are not able to save pages.

Syntax
printer.endWindow();
Parameters
none
Example
printer.endWindow();


Printer.euroConv method

Function

Converts the european currency union's currencies from/to Euro.

Syntax
printer.euroConv(
  isotarget,
  source,
  isoSource,
  thousand seperator,
  decimalSymbol
  );
Parameters
isoTarget | ISO Code of the target currency
Source | Amount which should be converted
isoSource | ISO code of the source amount
Thousand-separator | Thousand-separator; pass empty string to use no separator
decimalSymbol | decimal symbol to use (if empty, a comma is used)
Notes
  • If the source amount does not contain a decimal symbol (comma or point [,.]), the calculation is based on 2 decimal digits
  • The target amount always is displayed with two decimal digits
  • A conversion from for example DEM to ATS is not supported; either the source or the target ISO code has to be EUR.

The following currencies are supported:

Country | ISO code
states of the European currency union | EUR
Austria | ATS
Germany | DEM
Belgium | BEF
Spain | ESP
Finland | FIM
France | FRF
Greece | GRD
Ireland | IEP
Italy | ITL
Luxemburg | LUF
Netherlands | NLG
Portugal | PTE
Example
var euro = printer.euroConv("DEM", "4534690077.56", "EUR", ".", ",");
printer.message(euro);

In this example the amount of 4534690077.56 EUR is converted to DM and is displayed with a thousand separator.

The following command does the same wihtout a thousand separator:

euro = printer.euroConv("DEM", "4534690077.56", "EUR", "", ",");


Printer.font method

Purpose

Defines the new font for all the following text()-commands.

Syntax
printer.font(
  fontDescribtion
  );
Parameters
fontDescription describes the font; this description is printer-specific; see below.
Example
printer.font("Univers [10]");
Printer specific font describtion
  • LaserJet (PCL5)
  • Monarch 982x
  • Memorex/GABI
  • Epson FX-800
  • Cosys TD-2600


Printer.initJob method

Purpose

Executes job-specific initializations.

If this method returns false, the transmitted job is empty and must not be handled (see example).

Syntax
printer.initJob(
  Job
  );
Parameters
Job Job-Object which is returned by the JobProvider.getNextJob-method.
Example
for (;;) {
 /* waits for job from the system service */
 var job = jobProv.getNextJob();

 /* initJob() invoke */
 if (printer.initJob(job) == false) {

   /* initJob() returns 'false':
    * Job has to be ignored */
   continue;
   }

 [...]

 }


Printer.labelSize method

Function

Only for Monarch printers; sets the label size in 1/1200 inches. Has to be called before the first window() call.

Syntax
printer.labelSize(
  cx,
  cy,
  );
Parameters
cx | Width of the label
cy | Highness of the label
Example
printer.labelSize(3000, 2000);
Notes

If the specified height is higher than the size of the label, it is possible to print on more than one label at the same time. This works with the 9825 printer and only if the parameter "Skip Index" is active. You can find the "Skip Index" in the printer's menu ("Escape/Clear" -> Setup -> Supply -> Skip Index).


Printer.loadImage method

Purpose

Loads a Bitmap image from a file to the printer. Only supported by PCL printers

Syntax
printer.loadImage(
  fileName,
  dpi,
  imageName
  );
Parameters
filename | file name of the image file (Windows-Bitmap-format, colour depth 8 bit)
dpi | Resolution of the file in Dots Per Inch; possible values are 75, 150, 200 and 300
image name | name to reference the image with the printImage()-method
Notes:
  • The file has to be in Windows BMP format
  • The colour depth has to be 8bit (256 colours)
  • The file may not be compressed
Example
printer.loadImage("c:\\lps\\bmp\\logo.bmp", 300, "LOGO1");
printer.printImage("LOGO1");


Printer.pos method

Purpose

Sets the current print position relative to the current window (see window()-method).

Syntax
printer.pos(
  x,
  y,
  );
Parameters
x | horizontal position
y | vertical position
Example
printer.pos(100, 500);
printer.text("Hallo Welt!");


Printer.printImage method

Purpose

Prints an image on the current print position. The image must be already loaded using the loadImage() method.

Syntax
printer.printImage(
  imagename
  );
Parameters
imagename image name which is assigned by the loadImage() method.
Example
printer.loadImage("c:\\lps\\bmp\\logo.bmp", 300, "LOGO1");
printer.printImage("LOGO1");


Printer.rtext method

Purpose

rtext attempts to print right justified text; see remarks below why this cannot be exact.

Syntax
printer.rtext(
  text,
  xpos,
  ypos,
  averageCharWidth
  );
Parameters
text | text to be printed
xpos | x-position
ypos | y-position
averageCharWidth | average width of a single character
Notes
  • The position set by xpos und ypos is relative to the lower right corner.
  • At the moment rtext() is available for LaserJet and compatible printers only. If needed, rtext can be implemented for Monarch printers as well.
  • Since it is not possible to determine the exact width of each character (especially when it comes to proportional device fonts), the average character width has to be estimated. Thus, the result cannot be exact and calls for a compromise. It is not recommended to print longer texts with this method.
Example
printer.rtext("€99,90", 1500, 200, 40);


Printer.text method

Purpose

Prints the specified text at the current print position.

Syntax
printer.text(
  text
  );
Parameters
text text to be printed
Example
printer.pos(1000, 200);
printer.text("Moving to the country, gotta eat me a lot of peaches.");


Printer.color method

Purpose

For Monarch 982x printes only; sets the type of label separation the printer should use to determine label borders.

Syntax
printer.setSupplyType(
  type
  );
Parameters
type Possible Values:
  • 0 - Black mark
  • 1 - die/cut aperture, default value
  • 2 - continuous
            •
    Example
    printer.setSupplyType(1);


Printer.vector method

Purpose

Draws a line from the current print position to the specified position in the specified width.

Syntax
printer.vector(
  x,
  y,
  thickness
  );
Parameters
x | x-position of the target point
y | y-position of the target point
dicke | line strength to be used
Example
printer.pos(100, 100);
printer.vector(100, 1000, 30);

This example draws a 900 units long line with a strength of 30.


Printer.window method

Purpose

Creates a window definition on the current label. The coordinates of the upper left corner are specified. Windows can be overlapping.

All coordinates which are used in later print commands are relative to the current window; this allows using the same code for more than one label ont the same page.

Syntax
printer.window(
  x,
  y,
  );
Parameters
x | horizontal position
y | vertical position
Example
printer.window(100, 300);
printer.pos(100, 100); // actual position 200, 400
printer.text("Hello, World!");


Printer.driver properties

Function

Defines the printer driver for the print-object.

This property has to be set in all printer programs.

Syntax
printer.driver = jobProv.printerDriver;
Example
var jobProv = new ActiveXObject("LPSCOM.JobProvider");
var printer = new ActiveXObject("LPSCOM.Printer");

printer.driver = jobProv.printerDriver;


Printer.sysway Properties

Purpose

Returns the call up mode (how the print program was launched)

Syntax
printer.sysway;
Example
switch (printer.sysway) {

  case 1:
    /* normal record print mode */
    break;

  case 2:
    /* immediate print */

  case 3:
    /* restart mode */
    break;

  case 4:
    /* label positioning aid */
    break;

  }


Usage of a LAN PrintServer

Using a LAN Print Server

General information

RSJ LPS allows the usage of any network printer which can be addressed with a UNC path (for example \\servername\printername). This section describes how to configure printer connections through TCP/IP.

Connection through TCP/IP

The label system can address the printer through a UNC path only. That's why the connection is established through a Windows NT computer which creates the connection to the LAN Print Server and which shares the printer across a LAN. This requires the installation of of a network printer port. We recommend the installation on the system where the label system is installed (where the lpsd.exe service is running).

The following requirements have to be met to be able to use the LAN Print Server with RSJ LPS:

    The TCP/IP protocol and the "simple TCP/IP services" and the "Microsoft TCP/IP print service" have to be installed; you can check this in the Windows control panel. Choose "Network" and then "Protocols" or "Services".
  • The print server requires its own IP adress; you can assign this with DHCP. If there is no DHCP server available you have to configure the print server with the "BiAdmin" program to assign a static IP adress to the print server.

    • You will find further information concerning the configuration of the print server in the LAN Print Server User's Manual

  • The printer has to be connected to the print server through a standard parallel port cable.

If these requirements are met you have to assign a "Port" to the print server. To do this you need a "Dummy"-printer:

  1. Open the "Printers" icon in the control panel
  2. Choose "New printer"
  3. Choose "Desktop" and press "Next"
  4. Click on "Add" to specify a new printer port
  5. Select the entry "LPR port" from the list; this label can be different but "LPR" should be included in the name. Press "Add port".
  6. You will see a dialog. Insert the IP or the hostname of the print server in the first field. Insert "L1" in the second field. If the used print server supports more than one printer adapt the name "L1" as necessary.
  7. Close the dialog with OK
  8. Press "Next"; select "No" to avoid that the printer is used as a default printer. Press "Next".
  9. Choose "Generic/Text only" for the printer driver
  10. Activate "Sharing" on the next page and specify a name for the printer. This example uses "Monarch".
  11. Press "Finish"

Now the printer can be addressed through the UNC path "\\machine\Monarch ("Machine" is an example, too; please insert the host name of the machine where the connection was activated).

LPS Integration

To be able to use the new printer with RSJ LPS please perform the following steps:

  1. Please open the registry key
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RSJ_LPS_Daemon\Parameters\Printer Subsystem
    in the Windows registration editor (regedit.exe).
  2. Insert a new key; the name of the new key is the name you later use to reference this printer in the SpoolController application.
  3. Set the parameter Autostart, COM Setup, Printer Driver and Program file as usual; please find further information in the chapter Configuration
  4. The parameter Output Device has to contain the UNC path of the new installed printer port:
    "\\machinename\printername"
    In the above example this should be "\\machine\Monarch".
  5. If the SpoolController is running, close it.
  6. Open the symbol "Services" in the control panel and end "RSJ LPS Server for NT". Then restart it.
  7. Start the SpoolController; you should see the new printer in the device list.


Euro-Symbol with PCL printers

Euro-Symbol

The Euro-symbol can be printed with code 128 (Hex 80).

If the operating system supports Euro you can use the combination AltGr+E.

On old systems use Alt+0128.

The Euro-symbol can be used directly in the text command:

printer.text("The price is in € .");


SoftFonts (TrueType) for LaserJet

Using SoftFonts (TrueType) with PCL (LaserJet) printers

The usage of TrueType fonts with LaserJet printers requires a conversion in PCLETTO format. RSJ Software GmbH makes this conversion for you if you desire.

The converted Fonts are scalable like the TrueType - originals. The desired size is specified with the Font command.

Printer Failure

If the printer is disconnected or resetted the soft fonts will be discarded. To reload the Fonts without a restart of the system service use the command "Reload SoftFonts" in the SpoolController's context menu.

The second possibility is to add a value "SoftFontAutoRefresh" to the registry database of the machine where the LPS system service is running. Add this under the appropriate printer key. If this value is 1 the installed SoftFonts will be sent to the printer with each print command. However, this has the consequence that the print jobs get larger.

You will find more information in the chapter Configuration.


Memorex-printer specifications

Memorex Printer

The following methods are not supported:

  • vector

The following methods are supported in a limitated way:

  • FONT
  • Font only: COURIER, EAN
  • Stroke strength only NOBOLD
  • Style: UP

To avoid data errors on the parallel interface set the setting CC Busy in the Centronics-configuration to "ON".


Specifications for the COSYS printer

To use the COSYS printer with a serial connection the following COM Setup string should be used:

 baud=9600 parity=N data=8 stop=1 to=on odsr=on orts=on

The Baudrate, Parity, Data- und Stopbits have to correspond to the printer's settings.

Furthermore make sure that the following values are inserted in the interface protocol:

  • Start sign (SOH): 5E
  • End sign (ETB): 5F


New LABELSIZE command

The Monarch printer chukes the labels in a centered way. To calculate the base point of the coordinate system the printer/driver needs the exact label size; you can transmit this with the LABELSIZE command.

The print driver stops if the LABELSIZE command is not used before the first WINDOW call.


Euro-Symbol with Monarch printers

Euro-symbol

The Euro-symbol is printed with Code 192 (Hex C0). To insert this special character please hold down the Alt key while pressing the digits 0192 on the numeric key pad.

This special character is entered directly in the text method's text parameter.

Note: The Euro-symbol can be printed with the Standard Font only.


SoftFonts (TrueType) for Monarch

SoftFonts (TrueType) on the Monarch

The Monarch printer supports the usage of SoftFonts (addFont method). However, TrueType Fonts have to be converted to Monarch format using the MPCL Toolbox utility provided by PAXAR/Monarch:

http://www.servisource1.com/service_utilities.htm

(or http://www.paxar.de)

Please note the following:

  • The addFont command does not load the font directly to the printer. It is assumed that the printer already has all required fonts installed.
    The addFont() method rather tells the printer driver which fonts are loaded on the printer. When the SpoolController command "Reload SoftFonts" is issued, the printer is completely reset, freeing all font memory; the printer driver then reinstalls all fonts referenced by the addFont() methods in the print program.
    This functionality was especially adapted to the 9825 printer; we recommend the usage of SoftFonts with the 9825 printer only.
  • The Monarch 9820 does not support scalable Fonts; during the conversion of TrueType Fonts you have to specify a point size which is used to create a bitmap font
  • Soft fonts ids must be unique! The printer will not overwrite installed soft fonts if a duplicate id is used
  • The print memory is very limitated; we recommend to convert only the characters really needed
  • After the conversion of TrueType Fonts the MPCL Toolbox program asks if the created file should be sent to the printer. You should answer No, since this would compromise the LPS font management

See also:


Print failure / Reset Monarch

Print failure (Monarch 9825)

The 9825 printer possesses a non volatile font storage. That means that fonts which are loaded once are still available after a disconnection. Normally, Monarch printers are delivered with all required fonts already installed.

If the 9825 printer has problems with SoftFonts, the command "Reload SoftFonts" can be executed in the SpoolController's context menu. This command resets the printer and deletes all fonts which are in memory. After that the fonts which are referenced in the print program (by addFont()) will be sent to the printer.

PSee also:


Printer memory Monarch

Printer Memory

If there are memory problems it is better to revise the usage of SoftFonts; only signs that are actually required should be included in the font conversion; the number of SoftFonts and character definitions they contain is very very limited.

If the available print memory is to small you can allocate additional memory for SoftFonts in the MPCL toolbox; but this is limitated, too. You can not specify more than 120 KB.

The monarch can be instructed to allocate his internal puffer in a new way. You will find this function in the SpoolController.

If the SpoolController is running on the same machine as the LPS system service you can use the Configuration command in the Monarch printer's context menu. After that you will see the following dialogue:

Please choose the printer which should be used in printer type. The fields get initialized with the factory settings. The amount for the whole memory size should be adapted only if the printer has a memory extension.

To get free space for the SoftFonts use memory allocation. There will be assigned less memory to other buffers. The amount of totally used memory should not be larger than the amount in the default value. The printer needs about 200KB free memory; we don't know an exact value. That's why you should give it a try. The new allocation is effective if the printer does not show any error code; if you power off the printer you will not loose these settings.

Unfortunately it is not possible to arbitrary reduce the buffers; the printer might even accept the relocation and then quit with a memory error when you try to print.


Password Monarch 9825

The 9825-printer requires a password for special functions (Menu diagnostics). Please enter the following:

 cursor right
 cursor left
 Feed/Cut
 cursor right
 Enter/pause

Please note:


GABI Tuning

The GABI Tuning EPROM's enhance printing performance. They are effective only together with a modification of the application program (GABI.DLL).

The differences to the standard EPROM's are:

  • Acceleration (because of the application of Z80 instruction set) of some often used routines.
  • Continuuous XON indication when the printer buffer is empty
Additional commands:
  • Vertical Copy: /P/V// Jede Dotzeile wird mal ausgegeben.
  • Horizontal Copy: /P/I/////
  • Within a Dotline wird in Länge auf kopiert und um - erhöht. Dieser Vorgang wird mal durchgeführt.


RSJ Label Printing System

RSJ Logo

Copyright © 1995-2003 by
RSJ Software GmbH, Germering.
All rights reserved.

Christian Müller / Markus Müller / Klaus-Peter Jungbeck

Translation by Sandra Seywald and Markus Mueller

The information in this documentation is subject to change without further notice. Use of this documentation and the software described in this documentation is subject to the license agreement.

© Copyright 1994-2002 by RSJ Software GmbH Germering. All rights reserved. MS, MS-DOS, Windows, Windows NT und MSC are trade marks of Microsoft Corporation IBM, PC, AT, PS/2, OS/2, IBM CSet/2, IBM CSet++ and IBM SCSI Adapter/2 are trade marks of International Business Machines Corporation


Cosys TD-2600

FONT description Cosys TD-2600

Attribute | Description
facename
[pt,br,zw] height, width, gap (for text)
height, thick module width, thin module width (for EAN Codes, see below)
ITALIC
EAN8 | EAN 8 bar code
EAN13 | EAN 13 bar code
CODE39 | CODE 39 bar code
INT_2_5 | 2/5 Interleaved bar code
UPCA | UPC A bar code
UPCE | UPC E bar code
CODEBAR | CODABAR bar code
CODE128 | CODE 128 bar code

Bar Codes

The effect of the two parameters thick module width and thin modulw width depends on the bar code. Using wrong parameters can lead to either unreadable bar codes or a printer error message ("SC Zahl falsch").

The following combinations are valid:

Bar Code | thick module width | thin module width | Sample
EAN8 | 0 | 0, 4, 7, 9 | font("EAN8 [10,0,4]")
EAN13 | 0 | 0, 4, 7, 9 | font("EAN13 [10,0,4]")
CODE39 larger than thin module width,
best ratio 5:2 		> 0 font("CODE39 [10,3,1]")
INT_2_5 larger than thin module width,
best ratio 5:2 		> 0
UPCA | 0 | 0, 4, 7, 9 | font("UPCA [10,0,4]")
UPCE | 0 | 0, 4, 7, 9 | font("UPCE [10,0,4]")
CODEBAR larger than thin module width,
best ratio 5:2 		> 0
CODE128 | 0 | 1 - 9


Epson DFX-800

FONT description for Epson DFX-800

Attribute | Description
10CPI | 10 chars per inch (ROM font)
12CPI | 12 chars per inch (ROM font)
PROPORTIONAL
EAN8 | EAN 8 bar codes
EAN13 | EAN 13 bar codes
<filename.FNT> | Softfont in OS/2 Font-Editor-Format
WIDE | doubled width
HIGH | doubled height
ITALIC
UNDERLINED
BOLD
#n Graphics mode for EAN codes:
0 = 60 dots/inch*
1 = 120 dots/inch*
2 = 120 dots/inch (high speed)
3 = 240 dots/inch
4 = 80 dots/inch*
5 = 72 dots/inch*
6 = 90 dots/inch*
7 = 144 dots/inch*
8 = 120 dots/inch (softfont mode)*
*usable modes


Standarddrucker (Memorex und GABI)

FONT description for Memorex and GABI

>
Attribute | Description
HOCH | Landscape orientation
HOCHD | Landscape top down
QUER | portrait orientation
QUERD | portrait top down
LINEPRINTER | Line Printer
PICA | Pica
ELITE | Elite
COURIER | Courier
TMSRMN | Times Roman
GOTHIC | Gothic
SCRIPT | Script
PRESTIGE | Prestige
CASLON | Caslon
ORATOR | Orator
EAN | EAN 8 or 13 barcode
EANT | Same as EAN, incl. digit line
UP | default character
ITALIC
BOLD
NOBOLD
Pitch | characters per inch
Height | font height in 1/72 inch, e.g. 72 means height of 1 inch

Example:

 FONT ("HOCH, COURIER, UP, NOBOLD, 10, 14")
  • Landscape
  • Courier
  • Upricht characters
  • normal font
  • 10 characters per inch
  • character height 14 points


Font description for Monarch 982x printers

>
Attribute | Description
FaceName | name of font (see table below)
[pt,br,zw] normal monospaced text:
Vergrößerungsfaktor Höhe, Vergrößerungsfaktor Breite, Zwischenraum
barcodes:
barcode height in pels (203 dpi), EAN factor (width), obsolete (ignored)
PORTRAIT | Portrait orientation (default). Coordinate base point is in upper left corner.
LANDSCAPE | Landscape oriantation. Coordinate base point is in lower left corner, the label is turned 90° clockwise.
ITALIC
BOLD
etc. 		Not supported.

The following device fonts are available:

Name in FONT definition | Real Name | Comments
Standard | Standard Font | monospaced
Reduced | Reduced Font | monospaced
Bold | Bold Font | no Umlauts, only capitals, monospaced
OCRA | OCR Font | no Umlauts, only capitals, monospaced
HR1 | HR1 | Only numeric signs, monospaced
HR2 | HR2 | Only numeric signs, monospaced
Trium | Triumvirate | 6 Pt, proportional
Trium_B | Triumvirate Bold | 9 Pt, proportional
Trium7 | Triumvirate | 7 Pt, proportional
Trium9 | Triumvirate | 11 Pt, proportional
Trium11 | Triumvirate | 11 Pt, proportional
Trium15 | Triumvirate | 15 Pt, proportional
Paxar15 | Paxar | 15 Pt, proportional, symbols only
Paxar18 | Paxar | 18 Pt, proportional, symbols only
Nafta15 | Nafta | 15 Pt, proportional, symbols only
Nafta18 | Nafta | 18 Pt, proportional, symbols only
EAN8 | EAN 8 barcode
EAN13 | EAN 13 barcode
I2OF5 | Interleaved 2 of 5 barcode
USS128 | USS128 / EAN128 Barcode | FNC1 control byte is set with 3 (AltGr+3); "°" turns if code switching

Notes

  • The Euro sign can be printed with character code 192 (Hex C0). To enter this character in a text statement, press the digits 0192 on the numeric key pad while holding down the Alt key.
  • Permanent soft fonts can be referenced by their soft font id (number); to do so, use the following syntax (instead of the font name):
    #<SoftFont ID>
    for example
    printer.font("#101 [10]")


FONT für LaserJet Drucker (PCL5)

Font description for LaserJet Printers (PCL5)

Attribute | Description
facename | Name of a PCL5 font (e.g. CG_Times)
[pt] | point size
ITALIC | italic print
BOLD | bold print
UNDERLINED | underlined
CONDENSED | condensed
EAN8 | EAN 8 barcode
EAN13 | EAN 13 barcode
I2OF5 | Interleaved 2 of 5 barcode
*factor | line strength factor for bar codes (in 1/300" steps)

The Euro sign can be printed using character code 128 (hex 80).