FAQ: PML

Various information regarding the Printer Management Language

1: Where can I download the PML Object Specification referred to in the PML Protocol Specification?
The PML Object Specification is just a fancy name for MIB.  MIBS for different LaserJets can be found under the Printer MIBS link of the Developer Downloads website.

 

2: How can I change the mode of my MultiBin mailbox using PML?
First obtain the device number for the MultiBin Mailbox.  Print out a Configuration Page and add 1 to the device number shown (Device Number # = Configuration Page Device Number + 1).

Locate the phd#-device-specific-command object in the Base Unit MIB, where # = the device number of your MultiBin Mailbox.
(Note: If using @PJL DMINFO ASCIIHEX= or @PJL DMCMD ASCIIHEX=, you only need to resolve the object id back to "dm").

For MultiBin Mailbox (#=3) on the 5si/8000/8100:
1.4.1.7.3.3.2

This object uses 2 bytes to set the Mailbox mode (see 5si Base MIB):
Byte 1 (1=Set HCO Mode, 2=Return HCO Mode)
Byte 2 (1=Stacker, 2=Separator, 3=Collator, 4=Mailbox)

Given this information, you can compose a SetRequest, and execute it using the @PJL DMINFO command.  For example, to set the mail box mode to Collator send:

@PJL DMINFO ASCIIHEX="0400070104010703030214020103"

(Here is a byte by byte breakdown of the above ASCIIHEX string: <01><04><01><07><03><03>)

Power cycle the printer using the prtgeneralreset object for the Mailbox mode setting to take effect:
@PJL DMINFO ASCIIHEX="040006020501010301040105

 

3: How do you interpret the PML command used to print a configuration page on the LJ4000, LJ5000 and LJ8000?
@PJL DMINFO ASCIIHEX = "04000401010502040103"


The following ASCIIHex string is basically composed of 3 elements:

"04 000401010502 040103"
..SetReques....Object Identifier....Value to Set..

Here is a breakdown of the string:


--------------------------------------------------------..SetRequest..
04 - tells the PML Parser this is a SetRequest --------------------------------------------------------..ObjectIdentifier..
00 - tells the PML Parser the stream is about to give it an Object Identifier
04 - this is the length in bytes of the object identifier
01010502 - this is the object identifier that specifies the "print-internal-page" object in the LJ4000, LJ5000 and LJ8000 MIB:
[device(1).system(1).test(5).print-internal-page(2)]
--------------------------------------------------------..Value to Set. 04 - tells the PML Parser the stream is about to give it an enumeration value
01 - this is the length in bytes of the enumeration value
03 - this is the enumeration for "eDeviceDemoPage1ConfigurationPage" found in the MIB under the "print-internal-page" object  

4: How can I print a configuration, event log, file system, menu map, pcl font listing, or ps font listing page without using the control panel on the LJ4000, LJ5000 and LJ8000?
This can be accomplished with the @PJL DMINFO ASCIIHEX command, which sends PML requests as ASCII HEX strings directly
to the printers PML parser.  The ASCII HEX string used should specify a "SetRequest" on the "print-internal-page" object,
which can be looked up in the LJ4000, LJ5000, or LJ8000 MIB.

Following are the commands to print the pages in question:
<esc>%-12345X@PJL<0A>
@PJL COMMENT Configuration Page<0A>
@PJL DMINFO ASCIIHEX = "04000401010502040103"<0A>
@PJL COMMENT Event Log<0A>
@PJL DMINFO ASCIIHEX = "04000401010502040107" <0A>
@PJL COMMENT File System Directory<0A>
@PJL DMINFO ASCIIHEX = "04000401010502040108" <0A>
@PJL COMMENT Menu Map<0A>
@PJL DMINFO ASCIIHEX = "04000401010502040109" <0A>
@PJL COMMENT Pcl Font Listing<0A>
@PJL DMINFO ASCIIHEX = "040004010105020402015E" <0A>
@PJL COMMENT PS Font Listing<0A>
@PJL DMINFO ASCIIHEX = "04000401010502040201C2" <0A>
<esc>%-12345X

Return to Top of Page.

Questions: