Java library for parsing IPDS data streams. The library is currently in an early design phase and may not be useful for anything. I'm currently not woking on this project. The project is not dead, but I'm currently involved in so many other projects that I don't have any time for ipdsbox.
This project provides a framework that allows you to implement a virtual IPDS printer. Each received IPDS command is transformed into a Java object. Acknowledge replies can be constructed using Java objects, transformed into IPDS data stream and than sent back to the server.
LAN attached IPDS printers are using an special protocol named "PPD/PPR" (Page Printer Daemon / Page Printer Requester). This protocol encapsulates the native IPDS data stream for printers that are attached by TCP/IP (and not by SNA).
The specification of this protocol is (sadly) not publicy available. The specification is licenced by Ricoh to all members of the AFP Consortium. As the developer of ipdsbox is no member, the implementation of the PPD/PPR protocol in ipdsbox is based on tracing and inspecting the data stream (between a z/OS Host and an IPDS enabled printer).
Beware: Because of that it is likely that the behaviour of ipdsbox is not correct in all cases.
The IPDS architecture contains several command sets. The following table shows the command sets and the current status of the corresponding support of the IPDS command ("supported" means that ipdsbox can parse the IPDS command and create a specific Java object for it).
IPDS Command | Hex Value | Command Description | Command Set | Supported |
---|---|---|---|---|
AR | X'D62E' | Activate Resource | Device Control | ❌ |
AFO | X'D602' | Apply Finishing Operations | Device Control | ❌ |
BP | X'D6AF' | Begin Page | Device Control | ❌ |
DF | X'D64F' | Deactivate Font | Device Control | ❌ |
DUA | X'D6CE' | Define User Area | Device Control | ❌ |
END | X'D65D' | End | Device Control | ❌ |
EP | X'D6BF' | End Page | Device Control | ❌ |
ISP | X'D67E' | Include Saved Page | Device Control | ❌ |
ICMR | X'D66B' | Invoke CMR | Device Control | ❌ |
LCC | X'D69F' | Load Copy Control | Device Control | ❌ |
LFE | X'D63F' | Load Font Equivalence | Device Control | ❌ |
LPD | X'D6CF' | Logical Page Descriptor | Device Control | ❌ |
LPP | X'D66D' | Logical Page Position | Device Control | ❌ |
MID | X'D601' | Manage IPDS Dialog | Device Control | ❌ |
NOP | X'D603' | No Operation | Device Control | ✅ |
PFC | X'D634' | Presentation Fidelity Control | Device Control | ❌ |
RPO | X'D67B' | Rasterize Presentation Object | Device Control | ❌ |
STM | X'D6E4' | Sense Type and Model | Device Control | ✅ |
SHS | X'D697' | Set Home State | Device Control | ✅ |
SPE | X'D608' | Set Presentation Environment | Device Control | ❌ |
XOA | X'D633' | Execute Order Anystate | Device Control | ❌ |
XOH | X'D68F' | Execute Order Home State | Device Control | ❌ |
LE | X'D61D' | Load Equivalence | Text | ❌ |
WTC | X'D688' | Write Text Control | Text | ❌ |
WT | X'D62D' | Write Text | Text | ❌ |
WIC | X'D63D' | Write Image Control | IM-Image | ❌ |
WI | X'D64D' | Write Image | IM-Image | ❌ |
WIC2 | X'D63E' | Write Image Control 2 | IO-Image | ❌ |
WI2 | X'D64E' | Write Image 2 | IO-Image | ❌ |
WGC | X'D684' | Write Graphics Control | Graphics | ❌ |
WG | X'D685' | Write Graphics | Graphics | ❌ |
WBCC | X'D680' | Write Bar Code Control | Bar Code | ❌ |
WBC | X'D681' | Write Bar Code | Bar Code | ❌ |
DORE | X'D66C' | Data Object Resource Equivalence | Object Container | ❌ |
DDOFC | X'D65B' | Deactivate Data-Object-Font Component | Object Container | ❌ |
DDOR | X'D65C' | Deactivate Data Object Resource | Object Container | ❌ |
IDO | X'D67C' | Include Data Object | Object Container | ❌ |
RRR | X'D65A' | Remove Resident Resource | Object Container | ❌ |
RRRL | X'D659' | Request Resident Resource List | Object Container | ❌ |
WOCC | X'D63C' | Write Object Container Control | Object Container | ❌ |
WOC | X'D64C' | Write Object Container | Object Container | ❌ |
BPS | X'D65F' | Begin Page Segment | Page Segment | ❌ |
DPS | X'D66F' | Deactivate Page Segment | Page Segment | ❌ |
IPS | X'D67F' | Include Page Segment | Page Segment | ❌ |
BO | X'D6DF' | Begin Overlay | Overlay | ❌ |
DO | X'D6EF' | Deactivate Overlay | Overlay | ❌ |
IO | X'D67D' | Include Overlay | Overlay | ❌ |
LCP | X'D61B' | Load Code Page | Loaded Font | ❌ |
LCPC | X'D61A' | Load Code Page Control | Loaded Font | ❌ |
LF | X'D62F' | Load Font | Loaded Font | ❌ |
LFCSC | X'D619' | Load Font Character Set Control | Loaded Font | ❌ |
LFC | X'D61F' | Load Font Control | Loaded Font | ❌ |
LFI | X'D60F' | Load Font Index | Loaded Font | ❌ |
LSS | X'D61E' | Load Symbol Set | Loaded Font | ❌ |
The IPDS command "Execute Order Home State" (XOH) ist a rather complex command that isused to execute orders when the printer is in Home State. The following table shows the orders and the current status of the corresponding support of the order ("supported" means that ipdsbox can parse the order and create a specific Java object for it).
Code | Order | Supported |
---|---|---|
X'0200' | Deactivate Saved Page Group | ✅ |
X'0400' | Define Group Boundary | ✅ |
X'1300' | Eject to Front Facing | ❌ |
X'0700' | Erase Residual Font Data | ❌ |
X'0500' | Erase Residual Print Data | ❌ |
X'F300' | Obtain Printer Characteristics | ❌ |
X'F500' | Page Counters Control | ❌ |
X'0100' | Print Buffered Data | ❌ |
X'0A00' | Remove Saved Page Group | ❌ |
X'1500' | Select Input Media Source | ❌ |
X'0E00' | Select Medium Modifications | ❌ |
X'0900' | Separate Continuous Forms | ❌ |
X'1600' | Set Media Origin | ❌ |
X'1700' | Set Media Size | ❌ |
X'0300' | Specify Group Operation | ❌ |
X'0D00' | Stack Received Pages | ❌ |
X'F200' | Trace | ❌ |
The following table shows the Triplets and the current status of the corresponding support of the Triplet ("supported" means that ipdsbox can parse the Triplet and create a specific Java object for it).
ID | Name | Supported |
---|---|---|
X'00' | Group ID | ✅ |
X'01' | Coded Graphic Character Set Global Identifier | ✅ |
X'02' | Fully Qualified Name | ❌ |
X'4E' | Color Specification | ❌ |
X'50' | Encoding Scheme ID | ❌ |
X'5A' | Object Offset | ❌ |
X'62' | Local Date and Time Stamp | ❌ |
X'6E' | Group Information | ✅ |
X'70' | Presentation Space Reset Mixing | ❌ |
X'74' | Toner Saver | ❌ |
X'75' | Color Fidelity | ❌ |
X'79' | Metric Adjustment | ❌ |
X'84' | Font Resolution and Metric Technology | ❌ |
X'85' | Finishing Operation | ✅ |
X'86' | Text Fidelity | ❌ |
X'88' | Finishing Fidelity | ❌ |
X'8B' | Data Object Font Descriptor | ❌ |
X'8D' | Linked Font | ❌ |
X'8E' | UP3I Finishing Operation | ✅ |
X'91' | Color Management Resource Descriptor | ❌ |
X'92' | Invoke CMR | ❌ |
X'95' | Rendering Intent | ❌ |