xqxdecode(1)
β¨ NAME β¨
okay bestie, first things first: this is xqxdecode(1), a General Commands Manual page, and it does exactly one thing and does it flawlessly.
xqxdecode β Decode a XQX stream into human readable form. π
π¦ SYNOPSIS π¦
xqxdecode [options] <xqx-file
like, that's it. that's the whole invocation. she's low maintenance. π«Ά
π DESCRIPTION π
so xqxdecode decodes a XQX stream into human readable form. periodt. no cap.
and what even is an XQX stream? bestie it's the printer language used by some HP LaserJet printers, such as the HP LaserJet M1005 (MFP). iconic of them honestly. π¨οΈβ¨
π COMMAND LINE OPTIONS π
these are the options that can appear on the command line, and yes you can mix and match, she's flexible.
-dbasename β basename of.pbmfile for saving decompressed planes. like, she'll hand you the planes as.pbmfiles and this is what you wanna call them. πΌοΈ-hβ print hex file offsets. so every line gets a cute little hex address in front, iykyk. π’-oβ print file offsets. same energy as-hbut without the hex, so it's giving... offsets. π-Dlevel β set Debug level[0]. default is0, and honestly if you need this you already know. π
π₯ EXAMPLES π₯
decode an XQX stream file created by foo2xqx. look at her go:
$ xqxdecode -h < testpage.xm
0: \033%-12345X@PJL JOB
12: @PJL SET JAMRECOVERY=OFF
2b: @PJL SET DENSITY=3
3e: @PJL SET ECONOMODE=OFF
55: @PJL SET RET=MEDIUM
69: @PJL INFO STATUS
7a: @PJL USTATUS DEVICE = ON
93: @PJL USTATUS JOB = ON
a9: @PJL USTATUS PAGE = ON
c0: @PJL USTATUS TIMED = 30
10c: @PJL SET JOBATTR="JobAttr4=20061118160242"
10c: XQX_MAGIC, 0x5851582c (,XQX)
110: XQX_START_DOC(1), 7 items
118: XQXI_0x80000000, 84 (0x54)
124: XQXI_0x10000005, 1 (0x1)
130: XQXI_0x10000001, 0 (0x0)
13c: XQXI_DMDUPLEX, 0 (0x0)
148: XQXI_0x10000000, 0 (0x0)
154: XQXI_0x10000003, 1 (0x1)
160: XQXI_END, 3735928559 (0xdeadbeef)
16c: XQX_START_PAGE(3), 15 items [Page 1]
174: XQXI_0x80000000, 180 (0xb4)
180: XQXI_0x20000005, 1 (0x1)
18c: XQXI_DMDEFAULTSOURCE, 7 (0x7)
198: XQXI_DMMEDIATYPE, 1 (0x1)
1a4: XQXI_0x20000007, 1 (0x1)
1b0: XQXI_RESOLUTION_X, 600 (0x258)
1bc: XQXI_RESOLUTION_Y, 600 (0x258)
1c8: XQXI_RASTER_X, 9856 (0x2680)
1d4: XQXI_RASTER_Y, 6432 (0x1920)
1e0: XQXI_VIDEO_BPP, 2 (0x2)
1ec: XQXI_VIDEO_X, 4923 (0x133b)
1f8: XQXI_VIDEO_Y, 6432 (0x1920)
204: XQXI_ECONOMODE, 0 (0x0)
210: XQXI_DMPAPER, 1 (0x1)
21c: XQXI_END, 3735928559 (0xdeadbeef)
228: XQX_START_PLANE(5), 4 items
230: XQXI_0x80000000, 64 (0x40)
23c: XQXI_0x40000000, 0 (0x0)
248: XQXI_BIH(0x40000002)
DL = 0, D = 0, P = 1, - = 0, XY = 9856 x 6432
L0 = 128, MX = 16, MY = 0
Order = 3 ILEAVE SMID
Options = 92 LRLTWO TPDON TPBON DPON
51 stripes, 0 layers, 1 planes
264: XQXI_END, 3735928559 (0xdeadbeef)
270: XQX_JBIG(7), 110 items
2e6: XQX_END_PLANE(6), 0 items
2ee: XQX_END_PAGE(4), 0 items
2f6: XQX_END_DOC(2), 0 items
Total size: 110 bytes
0: \033%-12345X@PJL EOJ
12: \033%-12345X
look at all those offsets and magic numbers. she ate. πβ¨
πΈ FILES πΈ
/usr/bin/xqxdecode
that's where she lives. go say hi. π
π SEE ALSO π
the whole little family. go read them too, bestie, they're all connected. π«Ά
π AUTHOR π
Rick Richardson <rick.richardson@comcast.net> http://foo2xqx.rkkda.com/
and that's the page!! π it's from the General Commands Manual section, and there's genuinely no version number or date stamped on this one, so we're just gonna vibe with what we've got. you're gonna do great things with your hex offsets π¦βπ
π¦ where this page comes from
- ubuntu noble: printer-driver-foo2zjs-common 20200505dfsg0-2ubuntu6 Β· GPL-2.0-or-later
- ubuntu questing: printer-driver-foo2zjs-common 20200505dfsg0-2ubuntu6
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms