Using Bi-directional printing with RPM

AppSocket

We released a new version of RPM Remote Print Manager® ("RPM") with bidirectional printing support. You can now print to RPM using any print client that expects responses returned from the printer.

RPM now emulates the AppSocket or JetDirect protocol, which is used widely in the industry. The AppSocket module examines the Printer Job Language (commonly known as PJL) commands embedded in the print job. These commands typically appear both before and after the print job.

This release contains several key features we consider to be noteworthy.

  • AppSocket responds to a variety of commands as described in the PJL references, which seems to satisfy the systems we’ve tested with (for instance the AS/400)
  • AppSocket extracts data from the PJL to use as the job metadata, such as the print job name, username, start and end pages, and more
  • The UI launches a utility to query your local printer for settings and then uses those settings as an “emulation” to work with your print client in a familiar way
  • We protect confidential information about your printers such as the serial number and file system
  • RPM handles timeouts in perhaps a more simple manner than your printer might; we are concerned with submitting the job, not waiting five minutes for the rest of a page

Listing of PJL commands that AppSocket uses

AppSocket actively processes a number of PJL commands, listed on this page. Note that all other commands are passed through without a response from AppSocket or any additional actions.

PJL status readback supported by AppSocket

All responses are formatted as described in the PJL reference manuals, using a carriage return and line feed ending each line, ending with a form feed.

This page lists the commands and describes the responses.

PJL commands which are currently not implemented

Command Comments
@PJL DMINFO ASCIIHEX AppSocket returns the empty result "?" and does not attempt to interpret this command
@PJL USTATUS PAGE ON AppSocket does not currently emulate page printing or page status, so this command is ignored

About printer emulations

The RPM user interface launches a utility which queries your printer, in order to provide similar responses.

How to configure AppSocket

To add an AppSocket protocol, in the user interface, go to Configure / Port settings.

How to query printers on your network

This page provides an overview of how the RPM user interface queries individual printers on your network.

How AppSocket handles timeout value and timeouts

This page describes how AppSocket implements timeouts to provide a quiet print capability.

AppSocket introductory video

AppSocket featurette

We have created our first AppSocket video which introduces the concepts and the setup. We already plan further videos.