
What This Page Is About
RPM's AppSocket protocol scans PJL commands embedded in print jobs to extract useful metadata - things like who sent the job, what it's called, and how many copies to print. This page explains which commands we look for and how we process them.
Most of what you need is in the first three commands below. The rest handle edge cases.
The Big Three: Job Identity
@PJL SET JOBNAME = “x”
Extracts the jobname between the quotes, used for jobname
@PJL SET USERNAME = “x”
Extracts the username between quotes, used for job metadata
@PJL SET COPIES = x
Extracts the digits following the equal sign, used for job metadata
Job Control and timing
@PJL SET JOBIDVALUE = x
A unique identifier for this specific job. Useful if you need to track jobs across systems.
@PJL SET TIMEOUT = x
How long to wait before assuming the job failed. We respect this if it's set.
@PJL JOB
@PJL EOJ
Marks the start and end of a job. If you have status readback turned on, we'll send confirmation when the job completes.
Status & Inquiry Commands
These let applications ask RPM questions about printer state or settings:
@PJL INFO type
Asks for printer information. We generate responses based on your printer emulation settings.
(Exception: FILESYS queries get a "no file system" response since RPM doesn't manage printer filesystems.)
@PJL INQUIRE setting
We check the emulation or any SET commands you've issued.
@PJL DINQUIRE setting
"What's the default value?" Same answer, but defaults instead of current.
@PJL ECHO string
"Repeat this back to me." We do. Useful for confirming communication.
@PJL USTATUS args
Request status updates for DEVICE, JOB, PAGE, or TIMED events. See our for details.
@PJL USTATUSOFF
Turns off all status updates.
Variable Management
@PJL SET variable = value
Updates a stored value. If the emulation knows about this variable, we add a "current" field. Otherwise, we create it fresh.
@PJL DEFAULT [setting] = x
Sets default values for COPIES, JOBIDVALUE, or TIMEOUT. Works like SET but establishes the baseline.
Language & Emulation
@PJL ENTER LANGUAGE x
Tells RPM which printer language (PCL, PostScript, etc.) the job uses. We store this in the job metadata. If USTATUS JOB is ON, we send a response.
Commands We Ignore
@PJL DMINFO x
We return a "?" response, which means "not supported." This command is rarely used anyway.
Questions?
If you're seeing unexpected behavior with a PJL command not listed here, contact support with your job file and we'll help you figure out what's happening.