opldecode(1)

πŸ’– opldecode β€” the manual page, but make it make sense πŸ’–

okay so bestie, you know how opldecode is a command from the General Commands Manual (section 1, the classic "run it in your shell" section, iykyk)? Yeah. This is that page, but actually fun to read. Let's go. 🫢


✨ NAME ✨

opldecode β€” decode a Raster Object (opl) stream into human readable form.

like. it takes the cryptic printer bytes and turns them into something your eyeballs can actually enjoy. iconic behaviour fr fr. πŸ’…


✨ SYNOPSIS ✨

opldecode [options] <zjs-file
note the lil < there β€” this baby reads its input from stdin, so you pipe stuff in or redirect a file into it. no filename argument, periodt.

✨ DESCRIPTION ✨

opldecode decodes a Raster Object (opl) stream into human readable form.

A Raster Object stream is the printer language used by some Konica Minolta printers, such as the KM magicolor 2480 MF. πŸ’–

so yeah, if your printer speaks opl and you want to know what it's actually saying, this is your girl. 🌸


✨ COMMAND LINE OPTIONS ✨

These are the options that can appear on the command line. short list, but every single one slays:

  • -d basename β€” basename of .pbm file for saving decompressed planes. πŸŽ€
  • -h β€” print hex file offsets. yes bestie, hex. 0x-core. πŸ”₯
  • -o β€” print file offsets (just plain offsets, no hex energy). ✨
  • -D level β€” set Debug level [0]. the default is 0, so if you want the tea you gotta ask for it. πŸ‘‘

✨ EXAMPLES ✨

Decode a Raster Object stream file created by foo2lava-wrapper -z1. πŸ¦‹

$ foo2lava-wrapper -z1 testpage.ps | opldecode -h
     0:   Event=StartOfJob;
    11:  OSVersion=WindowsXP;
    25:  DrvVersion=2.0.1410.0;
    3b:  Resolution=1200x600;
    4f:  RasterObject.Compression=JBIG;
    6d:  Sides=OneSided;
    7c:  MediaSize=custom_size_8.5x11in;
    9b:  MediaType=plain;
    ab:  MediaInputTrayCheck=top;
    c3:  RasterObject.BitsPerPixel=1;
    df:  RasterObject.Planes=00FFFF,0,0,0,0,0,0;
   106: RasterObject.Width=9792;
   11e: RasterObject.Height=6400;
   137: RasterObject.Data#20=

                    DL = 0, D = 0, P = 1, - = 0, XY = 9792 x 6400
                    L0 = 128, MX = 0, MY = 0
                    Order   = 3  ILEAVE SMID
                    Options = 92  LRLTWO TPDON TPBON DPON
                    50 stripes, 0 layers, 1 planes
   161: RasterObject.Data#32768=
  817a:     RasterObject.Data#32768=
 10193:    RasterObject.Data#3168=
 10e0b:    RasterObject.Planes=FF00FF,0,0,0,0,0,0;
 10e32:    RasterObject.Width=9792;
 10e4a:    RasterObject.Height=6400;
 10e63:    RasterObject.Data#20=

                    DL = 0, D = 0, P = 1, - = 0, XY = 9792 x 6400
                    L0 = 128, MX = 0, MY = 0
                    Order   = 3  ILEAVE SMID
                    Options = 92  LRLTWO TPDON TPBON DPON
                    50 stripes, 0 layers, 1 planes
 10e8d:    RasterObject.Data#32768=
 18ea6:    RasterObject.Data#32768=
 20ebf:    RasterObject.Data#19200=
 259d8:    RasterObject.Planes=FFFF00,0,0,0,0,0,0;
 259ff:    RasterObject.Width=9792;
 25a17:    RasterObject.Height=6400;
 25a30:    RasterObject.Data#20=

                    DL = 0, D = 0, P = 1, - = 0, XY = 9792 x 6400
                    L0 = 128, MX = 0, MY = 0
                    Order   = 3  ILEAVE SMID
                    Options = 92  LRLTWO TPDON TPBON DPON
                    50 stripes, 0 layers, 1 planes
 25a5a:    RasterObject.Data#32768=
 2da73:    RasterObject.Data#32768=
 35a8c:    RasterObject.Data#32768=
 3daa5:    RasterObject.Data#7056=
 3f64d:    RasterObject.Planes=000000,0,0,0,0,0,0;
 3f674:    RasterObject.Width=9792;
 3f68c:    RasterObject.Height=6400;
 3f6a5:    RasterObject.Data#20=

                    DL = 0, D = 0, P = 1, - = 0, XY = 9792 x 6400
                    L0 = 128, MX = 0, MY = 0
                    Order   = 3  ILEAVE SMID
                    Options = 92  LRLTWO TPDON TPBON DPON
                    50 stripes, 0 layers, 1 planes
 3f6cf:    RasterObject.Data#32768=
 476e8:    RasterObject.Data#17472=
 4bb41:    Event=EndOfPage;
 4bb51:    Event=EndOfJob;

see how the -h gives you all those cute lil hex offsets down the left side? that's the whole vibe. πŸ‘‘ the RasterObject.Planes=... lines cycle through the colours β€” 00FFFF, FF00FF, FFFF00, 000000 β€” and every RasterObject.Data#... chunk gets its own offset so you can follow the stream like a story. πŸ“–βœ¨


✨ FILES ✨

  • /usr/bin/opldecode

that's where she lives. πŸ πŸ’–


✨ SEE ALSO ✨


✨ AUTHOR ✨

Rick Richardson <rick.richardson@comcast.net> http://foo2lava.rkkda.com/


and that's the whole page bestie!! πŸŽ€ this came straight out of the General Commands Manual, section 1 β€” opldecode(1), no cap. go decode something gorgeous. πŸ’œπŸ¦‹

πŸ“¦ where this page comes from