'\" t
'\"
'\"	DO NOT EDIT! This file is generated from zjsdecode.1in
'\"
.TH zjsdecode 1 "Mon Mar 20 10:32:55 2023" "zjsdecode 0.0"
'\"
'\"
'\"==========================================================================
'\"	STRINGS and MACROS
'\"==========================================================================
'\"
'\"	Define strings for special characters that nroff doesn't have
'\"
'\"	N.B. using .if cua to test for special characters did not work.
'\"
.if !'\*[.T]'ps' .ds ua up
.if  '\*[.T]'ps' .ds ua \(ua
.if !'\*[.T]'ps' .ds da down
.if  '\*[.T]'ps' .ds da \(da
.if !'\*[.T]'ps' .ds <- left
.if  '\*[.T]'ps' .ds <- \(<-
.if !'\*[.T]'ps' .ds -> right
.if  '\*[.T]'ps' .ds -> \(->
'\"
'\"     bx - box a Courier string for making keycaps
'\"
'\"	N.B. this mess is to make the line drawing come out only
'\"	if we are really generating postscript
'\"
.de bx
.ie !'\*[.T]'ps' \{\
.	RB [ \\$1 ]\\$2
.\}
.el \{\
.	ie !r ps4html \{\
'\" \(br\|\s\-1\f(CB\\$1\fP\s+1\|\(br\l'|0\(rn'\l'|0\(ul'
.		ft CW
.		nr par*bxw \w'\\$1'+.4m 
\Z'\v'.25m'\D'l 0 \-1m'\D'l \\n[par*bxw]u 0'\D'l 0 1m'\D'l \-\\n[par*bxw]u 0''\
\Z'\h'.2m'\s\-1\\$1\s+1'\
\h'\\n[par*bxw]u'\\$2
.		ft P
.	\}
.	el \{\
.		RB [ \\$1 ]\\$2
.	\}
.\}
..
'\"
'\" strings to set current color (null with old groff)
'\"
.if mred .ds red \m[red]
.if mgreen .ds green \m[green]
.if mblue .ds blue \m[blue]
.if mblack .ds black \m[black]
.if mblack .ds mP \mP
'\"
'\" fix for grotty + xterm. We call for orange, grotty outputs yellow,
'\" but xterm displays yellow as orange.  The cycle is complete.
'\"
.if n .defcolor orange rgb #ffff00
'\"
'\" color <color> \- set the current color (ignores request with old groff)
'\"
.de color
.if mred \m[\\$1]\c
..
'\"
'\" colorword <color> <word> \- colorize a word (ignored by old groff)
'\"
.de colorword
.ie m\\$1 \m[\\$1]\\$2\mP\c
.el \\$2\c
..
'\"
'\" colbox <fg> <bg> <word> \- colorize a word in a filled box
'\"
.de colbox
.ie mred \M[\\$2]\
\v'+.167v'\
\D'P 0 \-0.9v  \w'\\$3'u 0  0 +0.9v   \-\w'\\$3'u 0'\
\v'\-.167v'\
\m[\\$1]\\$3\mP\MP
.el \\$3\c
..
'\"
'\"	Macros for doing pdfmarks
'\"
.de specialps
.if  '\*[.T]'ps' \\k_\X'ps: \\$*'\h'|\\n_u'\c
..
'\"
'\" pdfmark PDFMARKCODE
'\"
.ds pdfmarks
.if d pdfmarks \{\
.de pdfmark
.	specialps exec [\\$1 pdfmark
..
'\"
'\" pdfdest LINKNAME
'\"
.de pdfdest
.pdfmark "/Dest /\\$1 /View [/XYZ \-5 PL null] /DEST"
..
'\"
'\" pdfbookmark COUNT LINKNAME STRING
'\"
.de pdfbookmark
.   pdfmark "/View [/XYZ 44 730 1.0] /Count \\$1 /Dest /\\$2 /Title (\\$3) /OUT"
..
'\"
'\"	Define the SH and SS macros to save pdfmark information
'\"	in "arrays" of numbers and strings.
'\"
.if !r rr_n \{\
.nr rr_n 0 1
.am SH
.	nr rr_levels!\\n+[rr_n] 2
.	ds rr_labels!\\n[rr_n] \\$*
.	pdfdest Link\\n[rr_n]
..
.am SS
.	nr rr_levels!\\n+[rr_n] 3
.	ds rr_labels!\\n[rr_n] \\$*
.	pdfdest Link\\n[rr_n]
..
.\}
'\"
'\"	Called at the end of the document to generate the pdfmark outline
'\"
.de pdf_outline
.nr rr_levels!\\n+[rr_n] 1
.nr rr_i 0 1
.while \\n+[rr_i]<\\n[rr_n] \{\
.   nr rr_ip1 \\n[rr_i]+1
.   nr rr_count 0
.   if \\n[rr_levels!\\n[rr_ip1]]>\\n[rr_levels!\\n[rr_i]] \{\
.       nr rr_j \\n[rr_i] 1
.       while \\n+[rr_j]<\\n[rr_n] \{\
.           if \\n[rr_levels!\\n[rr_j]]<=\\n[rr_levels!\\n[rr_i]] \{\
.               break
.           \}
.           if \\n[rr_levels!\\n[rr_j]]==(\\n[rr_levels!\\n[rr_i]]+1) \{\
.               nr rr_count \\n[rr_count]+1
.           \}
.       \}
.   \}
.   ds hhh \\*[rr_labels!\\n[rr_i]]
.   pdfbookmark \-\\n[rr_count] Link\\n[rr_i] "\\*[hhh]"
.\}
..
'\"
'\" Some postscript to make pdfmarks harmless on old interpreters...
'\"
.specialps "def /pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse"
'\"
'\" Force display of Bookmarks in Acrobat when document is viewed.
'\"
.pdfmark "[/PageMode /UseOutlines /Page 1 /View [/XYZ null null null] /DOCVIEW"
'\"
'\" Output the document info in pdfmarks
'\"
.pdfmark "\
	/Title (\*[an-title](\*[an-section])) \
	/Subject (\*[an-title] Manual Page) \
	/Author (Rick Richardson) \
	/Keywords (printing) \
	/Creator (groff \n(.x.\n(.y.\n(.Y \-man) \
	/CreationDate (\*[an-extra1]) \
	/ModDate (\*[an-extra1]) \
	/DOCINFO"
\}
'\"
'\" The manual page name is only 1st level mark
'\"
.nr rr_levels!\n+[rr_n] 1
.ds rr_labels!\n[rr_n] \*[an-title](\*[an-section])
.pdfdest Link\n[rr_n]
'\"
'\"==========================================================================
'\"	MANUAL PAGE SOURCE
'\"==========================================================================
.SH NAME
zjsdecode \- Decode a ZjStream into human readable form.
.SH SYNOPSIS
.B zjsdecode
.RI [ options "] <" zjs-file
.SH DESCRIPTION
.B zjsdecode
decodes a ZjStream into human readable form.
.P
A ZjStream is the printer language used by some Minolta/QMS and
HP printers, such as the 2300DL and LJ-1000.
.P
More information on Zenographics ZjStream can be found at:
.P
.RS
http://ddk.zeno.com
.RE

.SH COMMAND LINE OPTIONS
These are the options that can appear on the command line.
.TP
.BI \-d\0 basename
Basename of .pbm file for saving decompressed planes.
.TP
.BI \-r\0 basename
Basename of .jbg file for saving raw planes
.TP
.BI \-h
Print hex file offsets.
.TP
.BI \-o
Print file offsets.
.TP
.BI \-p
Don't do 4 byte padding
.TP
.BI \-D\0 level
Set Debug level [0].

.SH EXAMPLES
Decode an ZjStream file created by foo2zjs.

.nf
.ft CW
$ zjsdecode < testpage.zm
ZJT_START_DOC, 3 items
        ZJI_PAGECOUNT, 0 (0x0)
        ZJI_DMDUPLEX, 1 (0x1)
        ZJI_QUANTITY, 1 (0x1)
ZJT_START_PAGE, 17 items
        ZJI_0x17, 0 (0x0)
        ZJI_0x16, 1 (0x1)
        ZJI_VIDEO_X, 10200 (0x27d8)
        ZJI_VIDEO_Y, 6600 (0x19c8)
        ZJI_VIDEO_BPP, 1 (0x1)
        ZJI_RASTER_X, 10200 (0x27d8)
        ZJI_RASTER_Y, 6600 (0x19c8)
        ZJI_OFFSET_X, 0 (0x0)
        ZJI_OFFSET_Y, 0 (0x0)
        ZJI_NBIE, 1 (0x1)
        ZJI_RESOLUTION_X, 1200 (0x4b0)
        ZJI_RESOLUTION_Y, 600 (0x258)
        ZJI_DMDEFAULTSOURCE, 7 (0x7)
        ZJI_DMCOPIES, 1 (0x1)
        ZJI_DMPAPER, 1 (0x1)
        ZJI_DMMEDIATYPE, 1 (0x1)
        ZJI_MINOLTA_PAGE_NUMBER, 1 (0x1)
ZJT_JBIG_BIH, 0 items
        Data: 20 bytes
                DL = 0, D = 0, P = 1, \- = 0, XY = 10200 x 6600
                L0 = 128, MX = 16, MY = 0
                Order   = 3  ILEAVE SMID
                Options = 92  LRLTWO TPDON TPBON DPON
                52 stripes, 0 layers, 1 planes
ZJT_JBIG_BID, 0 items
        Data: 65536 bytes
ZJT_JBIG_BID, 0 items
        Data: 29120 bytes
ZJT_END_JBIG, 0 items
ZJT_END_PAGE, 0 items
ZJT_END_DOC, 0 items
.ft P
.fi

.SH FILES
.BR /usr/bin/zjsdecode
.SH SEE ALSO
.BR foo2zjs-wrapper (1),
.BR foo2zjs (1),
.BR jbg2pbm (1)
.SH "AUTHOR"
Rick Richardson <rick.richardson@comcast.net>
.br
http://foo2zjs.rkkda.com/
'\"
'\"
'\"
.em pdf_outline
