groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Groff] New version of the grolbp driver


From: Paco Andres Verdu
Subject: [Groff] New version of the grolbp driver
Date: Sat, 26 Feb 2000 21:24:37 +0100 (CET)

Hi,

        I've put an updated version of the grolbp driver at the usual place
   <http://www1.dragonet.es/~pandres/canon/patch-lbp.gz>.

        For those who missed my previous posting, grolbp is a groff driver for
   the Canon printers which use the CAPSL page  description language (lbp-4 and
   lbp-8 series laser printers).

   The main changes over the previous version are:
        
       - A very flexible paper size selection mechanism.
       - A bunch of command line options (to select the page orientation, size,
          number of copies, etc). See the attached man page for the full
          listing.
       - Support for all the fonts shipped with the printer (at least with the
          lbp-8 III Plus).
       - An improved man page.
       - Adapted to the new groff directory layout.

       I've attached the man page to this message, take a look at it if you are
    interested in the driver features.

       Currently the driver has been tested only on a Debian/Linux system, so I
   would like to know if there are any problems compiling or running the driver
   on other platforms.
        
       The distributed driver is a patch for the current CVS tree, to apply the
   patch cd to the directory where you have the groff sources and issue this
   command:
            zcat path_where_the_patch_is/patch-lbp.gz | patch -p1


PS: Werner, can you take a look a it, and tell me if it's ready for inclusion 
   in the CVS tree ?. Of course I would volunteer to maintain the driver.
   
 
-----------------------------------------------------------------------------
Paco Andrés Verdú                                     address@hidden
Alicante (Spain)                                              

.if !\n(.g .ab GNU tbl requires GNU troff.
.if !dTS .ds TS
.if !dTE .ds TE
.lf 1 grolbp.man.src
.ig \"-*- nroff -*-
Copyright (C) 1994, 1995, 1999 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

 Modified by Francisco Andrés Verdú <address@hidden> for the grolbp
 program.
..
.\" Like TP, but if specified indent is more than half
.\" the current line-length - indent, use the default indent.
.de Tp
.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
.el .TP "\\$1"
..
.TH GROLBP 1 "26  2000" "Groff Version 1.16"
.SH NAME
grolbp \- groff driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser 
printers).
.SH SYNOPSIS
.B grolbp
[
.B \-l
] [
.BI \-\-landscape
] [
.B \-v
] [
.BI \-\-version
] [
.BI \-c n
] [
.BI \-\-copies \ numcopies
] [
.BI \-p paper_size
] [
.BI \-\-papersize \ paper_size
] [
.BI \-o orientation
] [
.BI \-\-orientation \ orientation
] [
.BI \-F dir
] [
.BI \-\-fontdir \ dir
] [
.B \-h
] [
.B \-\-help
] [
.IR files \|.\|.\|.
]
.SH DESCRIPTION
.B grolbp
is a driver for
.B groff
that produces output in CAPSL and VDM format suitable for Canon LBP\-4 \ and 
\ LBP\-8 \ printers.
.LP
For compatibility with grolj4 there is an additional drawing command available:
.TP
.BI \eD'R\  dh\ dv '
Draw a rule (solid black rectangle), with one corner
at the current position, and the diagonally opposite corner
at the current position 
.RI +( dh , dv ).
.SH OPTIONS
.TP
.BI \-c numcopies \ \-\-copies \ numcopies
Print
.I numcopies
copies of each page.
.TP
.B \-l \-\-landscape
Print the document with a landscape orientation.
.TP
.BI \-p paper_size \ \ \-\-papersize \ \ paper_size

Set the paper size to
.IR paper_size ,
which must be a valid paper size description as indicated in the
section 
.B PAPER SIZES.
.TP
.BI \-o orientation \ \ \-\-orientation \ \ orientation
Print the document with 
.IR orientation 
orientation, which must be portrait or landscape.
.TP
.B \-v \-\-version
Print the version number.
.TP
.BI \-F dir \ \-\-fontdir \ dir
Search directory
.IB dir /devlbp
for font and device description files.
.TP
.B \-h \ \-\-help
Print a short help text.

.SH TYPEFACES
.pp
The driver supports the Dutch, Swiss and Swiss-Narrow scalable typefaces, each
one in the Regular, Bold, Italic and Bold\-Italic styles.

.pp
And the Courier and Elite 
monospaced typefaces at the sizes supported by the printer, 8 and 12 points for 
Courier and 8 and 10 points for Elite, each one in the Regular, Bold and Italic
styles.


.pp
The following chart summarizes the font names you can use to access these fonts:

.TS
.if '\*(.T'html' \X(table-start(
.nr 3c \n(.C
.cp 0
.nr 3lps \n[.s]
.de 3init
.ft \n[.f]
.ps \n[.s]
.vs \n[.v]u
.in \n[.i]u
.ll \n[.l]u
.ls \n[.L]
.ad \n[.j]
.ie \n[.u] .fi
.el .nf
.ce \n[.ce]
..
.nr 3ind \n[.i]
.nr 3fnt \n[.f]
.nr 3sz \n[.s]
.nr 3fll \n[.u]
.nr T. 0
.nr 3crow 0-1
.nr 3passed 0-1
.nr 3sflag 0
.ds 3trans
.ds 3quote
.nr 3brule 1
.nr 3supbot 0
.eo
.de 3rmk
.mk \$1
.if !'\n(.z'' \!.3rmk "\$1"
..
.de 3rvpt
.vpt \$1
.if !'\n(.z'' \!.3rvpt "\$1"
..
.de 3keep
.if '\n[.z]'' \{.ds 3quote \\
.ds 3trans \!
.di 3section
.nr 3sflag 1
.in 0
.\}
..
.de 3release
.if \n[3sflag] \{.di
.in \n[3ind]u
.nr 3dn \n[dn]
.ds 3quote
.ds 3trans
.nr 3sflag 0
.if \n[.t]<=\n[dn] \{.nr T. 1
.T#
.nr 3supbot 1
.sp \n[.t]u
.nr 3supbot 0
.mk #T
.\}
.if \n[.t]<=\n[3dn] .tm warning: page \n%: table text block will not fit on one 
page
.nf
.ls 1
.3section
.ls
.rm 3section
.\}
..
.nr 3tflag 0
.de 3tkeep
.if '\n[.z]'' \{.di 3table
.nr 3tflag 1
.\}
..
.de 3trelease
.if \n[3tflag] \{.br
.di
.nr 3dn \n[dn]
.ne \n[dn]u+\n[.V]u
.ie \n[.t]<=\n[3dn] .tm error: page \n%: table will not fit on one page; use 
.TS H/.TH with a supporting macro package
.el \{.in 0
.ls 1
.nf
.3table
.\}
.rm 3table
.\}
..
.ec
.ce 0
.nf
.nr 3sep 1n
.nr 3w0 \n(.H
.nr 3aw0 0
.nr 3lnw0 0
.nr 3rnw0 0
.nr 3w1 \n(.H
.nr 3aw1 0
.nr 3lnw1 0
.nr 3rnw1 0
.nr 3w2 \n(.H
.nr 3aw2 0
.nr 3lnw2 0
.nr 3rnw2 0
.nr 3w3 \n(.H
.nr 3aw3 0
.nr 3lnw3 0
.nr 3rnw3 0
.nr 3w4 \n(.H
.nr 3aw4 0
.nr 3lnw4 0
.nr 3rnw4 0
.lf 132 grolbp.man.src
.nr 3w0 \n[3w0]>?\w\[tbl]Typeface \[tbl]
.lf 132
.nr 3w1 \n[3w1]>?\w\[tbl] Regular \[tbl]
.lf 132
.nr 3w2 \n[3w2]>?\w\[tbl] Bold \[tbl]
.lf 132
.nr 3w3 \n[3w3]>?\w\[tbl] Italic \[tbl]
.lf 132
.nr 3w4 \n[3w4]>?\w\[tbl] Bold\-Italic\[tbl]
.lf 133
.nr 3aw0 \n[3aw0]>?\w\[tbl]\f[B]Dutch \f[\n[3fnt]]\[tbl]
.lf 133
.nr 3w1 \n[3w1]>?\w\[tbl] TR \[tbl]
.lf 133
.nr 3w2 \n[3w2]>?\w\[tbl] TB \[tbl]
.lf 133
.nr 3w3 \n[3w3]>?\w\[tbl] TI \[tbl]
.lf 133
.nr 3w4 \n[3w4]>?\w\[tbl] TBI\[tbl]
.lf 134
.nr 3aw0 \n[3aw0]>?\w\[tbl]\f[B]Swiss \f[\n[3fnt]]\[tbl]
.lf 134
.nr 3w1 \n[3w1]>?\w\[tbl] HR \[tbl]
.lf 134
.nr 3w2 \n[3w2]>?\w\[tbl] HB \[tbl]
.lf 134
.nr 3w3 \n[3w3]>?\w\[tbl] HI \[tbl]
.lf 134
.nr 3w4 \n[3w4]>?\w\[tbl] HBI\[tbl]
.lf 135
.nr 3aw0 \n[3aw0]>?\w\[tbl]\f[B]Swiss Narrow \f[\n[3fnt]]\[tbl]
.lf 135
.nr 3w1 \n[3w1]>?\w\[tbl] HNR \[tbl]
.lf 135
.nr 3w2 \n[3w2]>?\w\[tbl] HNB \[tbl]
.lf 135
.nr 3w3 \n[3w3]>?\w\[tbl] HNI \[tbl]
.lf 135
.nr 3w4 \n[3w4]>?\w\[tbl] HNBI\[tbl]
.lf 136
.nr 3aw0 \n[3aw0]>?\w\[tbl]\f[B]Courier \f[\n[3fnt]]\[tbl]
.lf 136
.nr 3w1 \n[3w1]>?\w\[tbl] CR \[tbl]
.lf 136
.nr 3w2 \n[3w2]>?\w\[tbl] CB \[tbl]
.lf 136
.nr 3w3 \n[3w3]>?\w\[tbl] CI \[tbl]
.lf 136
.nr 3w4 \n[3w4]>?\w\[tbl] \[tbl]
.lf 137
.nr 3aw0 \n[3aw0]>?\w\[tbl]\f[B]Elite \f[\n[3fnt]]\[tbl]
.lf 137
.nr 3w1 \n[3w1]>?\w\[tbl] ER \[tbl]
.lf 137
.nr 3w2 \n[3w2]>?\w\[tbl] EB \[tbl]
.lf 137
.nr 3w3 \n[3w3]>?\w\[tbl] EI \[tbl]
.lf 137
.nr 3w4 \n[3w4]>?\w\[tbl] \[tbl]
.nr 3w0 \n[3w0]>?(\n[3lnw0]+\n[3rnw0])
.if \n[3aw0] .nr 3w0 \n[3w0]>?(\n[3aw0]+2n)
.nr 3w1 \n[3w1]>?(\n[3lnw1]+\n[3rnw1])
.if \n[3aw1] .nr 3w1 \n[3w1]>?(\n[3aw1]+2n)
.nr 3w2 \n[3w2]>?(\n[3lnw2]+\n[3rnw2])
.if \n[3aw2] .nr 3w2 \n[3w2]>?(\n[3aw2]+2n)
.nr 3w3 \n[3w3]>?(\n[3lnw3]+\n[3rnw3])
.if \n[3aw3] .nr 3w3 \n[3w3]>?(\n[3aw3]+2n)
.nr 3w4 \n[3w4]>?(\n[3lnw4]+\n[3rnw4])
.if \n[3aw4] .nr 3w4 \n[3w4]>?(\n[3aw4]+2n)
.nr 3cd0 0
.nr 3cl0 1*\n[3sep]
.nr 3ce0 \n[3cl0]+\n[3w0]
.nr 3cl1 \n[3ce0]+(3*\n[3sep])
.nr 3cd1 \n[3ce0]+\n[3cl1]/2
.nr 3ce1 \n[3cl1]+\n[3w1]
.nr 3cl2 \n[3ce1]+(3*\n[3sep])
.nr 3cd2 \n[3ce1]+\n[3cl2]/2
.nr 3ce2 \n[3cl2]+\n[3w2]
.nr 3cl3 \n[3ce2]+(3*\n[3sep])
.nr 3cd3 \n[3ce2]+\n[3cl3]/2
.nr 3ce3 \n[3cl3]+\n[3w3]
.nr 3cl4 \n[3ce3]+(3*\n[3sep])
.nr 3cd4 \n[3ce3]+\n[3cl4]/2
.nr 3ce4 \n[3cl4]+\n[3w4]
.nr 3cd5 \n[3ce4]+(1*\n[3sep])
.nr TW \n[3cd5]
.in +(u;\n[.l]-\n[.i]-\n[TW]/2)
.nr 3ind \n[.i]
.eo
.de T#
.if !\n[3supbot] \{.3rvpt 0
.mk 3vert
.if \n[T.]&\n[3brule] \{.vs 2p>?\n[.V]u
.ls 1
\v'.25m'\s[\n[3lps]]\h'|\n[3cd0]u'\D'l |\n[3cd5]u 0'\s0
.ls
.vs
.\}
.ls 1
.if \n[3crow]>=0 \{.if 0<=\n[3passed] .nr 3rt0 \n[#T]
.sp -1
\v'.25m'\h'\n[3cd5]u'\s[\n[3lps]]\D'l 0 |\n[3rt0]u-1v'\s0
.\}
.if \n[3crow]>=0 \{.if 0<=\n[3passed] .nr 3rt0 \n[#T]
.sp -1
\v'.25m'\h'\n[3cd0]u'\s[\n[3lps]]\D'l 0 |\n[3rt0]u-1v'\s0
.\}
.if \n[3crow]>=0 \{.if 0<=\n[3passed] .nr 3rt0 \n[#T]
.sp -1
\v'.25m'\h'\n[3cd4]u'\s[\n[3lps]]\D'l 0 |\n[3rt0]u-1v'\s0
.\}
.if \n[3crow]>=0 \{.if 0<=\n[3passed] .nr 3rt0 \n[#T]
.sp -1
\v'.25m'\h'\n[3cd3]u'\s[\n[3lps]]\D'l 0 |\n[3rt0]u-1v'\s0
.\}
.if \n[3crow]>=0 \{.if 0<=\n[3passed] .nr 3rt0 \n[#T]
.sp -1
\v'.25m'\h'\n[3cd2]u'\s[\n[3lps]]\D'l 0 |\n[3rt0]u-1v'\s0
.\}
.if \n[3crow]>=0 \{.if 0<=\n[3passed] .nr 3rt0 \n[#T]
.sp -1
\v'.25m'\h'\n[3cd1]u'\s[\n[3lps]]\D'l 0 |\n[3rt0]u-1v'\s0
.\}
.ls
.nr 3passed \n[3crow]
.sp |\n[3vert]u
.3rvpt 1
.\}
..
.ec
.fc 
.3tkeep
.vs 2p>?\n[.V]u
.ls 1
\v'.25m'\s[\n[3lps]]\h'|\n[3cd0]u'\D'l |\n[3cd5]u 0'\s0
.ls
.vs
.3keep
.3rmk 3rt0
\*[3trans].nr 3crow 0
.3keep
.mk 3rs0
.mk 3bot
.3rvpt 0
.ta \n[3ce0]u \n[3ce1]u \n[3ce2]u \n[3ce3]u \n[3ce4]u
.lf 132
\&\h'|\n[3cl0]u'Typeface \h'|\n[3cl1]u' Regular \h'|\n[3cl2]u' Bold 
\h'|\n[3cl3]u' Italic \h'|\n[3cl4]u' Bold\-Italic
.nr 3bot \n[3bot]>?\n[.d]
.sp |\n[3rs0]u
.3rvpt 1
.sp |\n[3bot]u
\*[3trans].nr 3brule 1
.vs 2p>?\n[.V]u
.ls 1
\v'.25m'\s[\n[3lps]]\h'|\n[3cd0]u'\D'l |\n[3cd5]u 0'\s0
.ls
.vs
\*[3trans].nr 3brule 0
.3release
.3keep
.3rmk 3rt1
\*[3trans].nr 3crow 1
.3keep
.mk 3rs1
.mk 3bot
.3rvpt 0
.ta \n[3ce0]u \n[3ce1]u \n[3ce2]u \n[3ce3]u \n[3ce4]u
.lf 133
\&\h'|\n[3cl0]u'\h'\n[3w0]u-\n[3aw0]u/2u'\f[B]Dutch 
\f[\n[3fnt]]\h'|\n[3cl1]u' TR \h'|\n[3cl2]u' TB \h'|\n[3cl3]u' TI 
\h'|\n[3cl4]u' TBI
.nr 3bot \n[3bot]>?\n[.d]
.sp |\n[3rs1]u
.3rvpt 1
.sp |\n[3bot]u
\*[3trans].nr 3brule 1
.vs 2p>?\n[.V]u
.ls 1
\v'.25m'\s[\n[3lps]]\h'|\n[3cd0]u'\D'l |\n[3cd5]u 0'\s0
.ls
.vs
\*[3trans].nr 3brule 0
.3release
.3keep
.3rmk 3rt2
\*[3trans].nr 3crow 2
.3keep
.mk 3rs2
.mk 3bot
.3rvpt 0
.ta \n[3ce0]u \n[3ce1]u \n[3ce2]u \n[3ce3]u \n[3ce4]u
.lf 134
\&\h'|\n[3cl0]u'\h'\n[3w0]u-\n[3aw0]u/2u'\f[B]Swiss 
\f[\n[3fnt]]\h'|\n[3cl1]u' HR \h'|\n[3cl2]u' HB \h'|\n[3cl3]u' HI 
\h'|\n[3cl4]u' HBI
.nr 3bot \n[3bot]>?\n[.d]
.sp |\n[3rs2]u
.3rvpt 1
.sp |\n[3bot]u
\*[3trans].nr 3brule 1
.vs 2p>?\n[.V]u
.ls 1
\v'.25m'\s[\n[3lps]]\h'|\n[3cd0]u'\D'l |\n[3cd5]u 0'\s0
.ls
.vs
\*[3trans].nr 3brule 0
.3release
.3keep
.3rmk 3rt3
\*[3trans].nr 3crow 3
.3keep
.mk 3rs3
.mk 3bot
.3rvpt 0
.ta \n[3ce0]u \n[3ce1]u \n[3ce2]u \n[3ce3]u \n[3ce4]u
.lf 135
\&\h'|\n[3cl0]u'\h'\n[3w0]u-\n[3aw0]u/2u'\f[B]Swiss Narrow 
\f[\n[3fnt]]\h'|\n[3cl1]u' HNR \h'|\n[3cl2]u' HNB \h'|\n[3cl3]u' HNI 
\h'|\n[3cl4]u' HNBI
.nr 3bot \n[3bot]>?\n[.d]
.sp |\n[3rs3]u
.3rvpt 1
.sp |\n[3bot]u
\*[3trans].nr 3brule 1
.vs 2p>?\n[.V]u
.ls 1
\v'.25m'\s[\n[3lps]]\h'|\n[3cd0]u'\D'l |\n[3cd5]u 0'\s0
.ls
.vs
\*[3trans].nr 3brule 0
.3release
.3keep
.3rmk 3rt4
\*[3trans].nr 3crow 4
.3keep
.mk 3rs4
.mk 3bot
.3rvpt 0
.ta \n[3ce0]u \n[3ce1]u \n[3ce2]u \n[3ce3]u \n[3ce4]u
.lf 136
\&\h'|\n[3cl0]u'\h'\n[3w0]u-\n[3aw0]u/2u'\f[B]Courier 
\f[\n[3fnt]]\h'|\n[3cl1]u' CR \h'|\n[3cl2]u' CB \h'|\n[3cl3]u' CI 
\h'|\n[3cl4]u' 
.nr 3bot \n[3bot]>?\n[.d]
.sp |\n[3rs4]u
.3rvpt 1
.sp |\n[3bot]u
\*[3trans].nr 3brule 1
.vs 2p>?\n[.V]u
.ls 1
\v'.25m'\s[\n[3lps]]\h'|\n[3cd0]u'\D'l |\n[3cd5]u 0'\s0
.ls
.vs
\*[3trans].nr 3brule 0
.3release
.3keep
.3rmk 3rt5
\*[3trans].nr 3crow 5
.3keep
.mk 3rs5
.mk 3bot
.3rvpt 0
.ta \n[3ce0]u \n[3ce1]u \n[3ce2]u \n[3ce3]u \n[3ce4]u
.lf 137
\&\h'|\n[3cl0]u'\h'\n[3w0]u-\n[3aw0]u/2u'\f[B]Elite 
\f[\n[3fnt]]\h'|\n[3cl1]u' ER \h'|\n[3cl2]u' EB \h'|\n[3cl3]u' EI 
\h'|\n[3cl4]u' 
.nr 3bot \n[3bot]>?\n[.d]
.sp |\n[3rs5]u
.3rvpt 1
.sp |\n[3bot]u
\*[3trans].nr 3brule 1
.3release
.mk 3rt6
.nr 3brule 1
.nr T. 1
.T#
.3trelease
.3init
.fc
.cp \n(3c
.lf 138
.if '\*(.T'html' \X(table-end(
.TE

.SH PAPER SIZES

.pp
The paper size can be set in the 
.B DESC 
file or with command line options to grolbp. If the paper size is specified
both ways, the command line options take precedence over the contents of the
DESC file (this applies to the page orientation too).

.pp
To set the paper size in the 
.B DESC
file, insert in that file a line containing 
.BI papersize \ desired_papersize
where
.I desired_papersize 
is:

.IP \(bu 4
One of the recognized paper sizes:  a4, letter, legal and executive.
.IP \(bu 4
A custom defined paper size,  as described in the 
.B  CUSTOM PAPER SIZES 
subsection.
.IP \(bu 4
The name of a file (ie.- \ 
.I /etc/papersize
) whose first line must be the desired paper size in one of
the above formats.

.PP -4
If there are various papersize lines in the DESC file, only
the first valid one is used.

.pp
To set the paper size in the command line, add a 
.B \-p \ desired_papersize 
or
.B  \-\-papersize \ desired_papersize
to the other grolbp options, where 
.B desired_papersize
is in the same format as in the DESC file.

.pp
Paper sizes are case insensitive (ie.- A4 is the same as a4).

.pp
If no paper size is specified in the DESC file nor the command line, a default
size of A4 is used.

.TP
.SH CUSTOM PAPER SIZES
.pp
Custom defined paper sizes are in the form 
.B custlengthxwidth
where length an width are the dimensions of the paper you want to to use,
specified in printer units (1/300 of an inch).

For instance, to print in  a postcard sized paper which is two inches long and
four inches wide you can insert a line containing 
.B papersize cust600x1200
at the beginning of the DESC file.


.SH PAGE ORIENTATION
.PP
As with the page size, the orientation of the printed page (
.B portrait
or
.B landscape
) can be set in the
.B DESC
file or with command line options. It is also case insensitive.

.pp
To set the orientation in the 
.B DESC 
file insert a line with the following content
.B orientation 
[
.B portrait
|
.B landscape
]. As with paper sizes, only the first valid orientation command in the DESC
file is used.

.pp
To set the page orientation with command line options you can use the 
.B \-o
or 
.B \-\-orientation
options with the same parameters (
.B portrait
or
.B landscape
)
as in the DESC file. Or you can use the 
.B \-l
option to force the pages to be printed in landscape.


.SH FILES
.TP
.B /usr/local/share/groff/font/devlbp/DESC
Device description file.
.TP
.B /usr/local/share/groff/font/devlbp/ F
Font description file for font
.IR F .
.SH "SEE ALSO"
.BR groff (1),
.BR troff (1),
.BR eqn (1),
.BR groff_out (5),
.BR groff_font (5),
.BR groff_char (7),

reply via email to

[Prev in Thread] Current Thread [Next in Thread]